反弹球python小游戏

1.准备图片(可以替换)

2.python Pygame类

class Ls(pygame.sprite.Sprite):
    def __init__(self,pos):#pos 鼠标点击的位置
        super().__init__()
        self.image = pygame.image.load('ji.png')
        self.dx2=self.dx = r.randint(20,500)
        self.image = pygame.transform.scale(self.image,(self.dx,self.dx2))
        self.rect = self.image.get_rect()
        self.rect.top = pos[0]
        self.rect.left =pos[1]
        self.vx = r.randint(5,30)
        self.vy = r.randint(5,30)

 下面的代码也是Ls类里面的,作用是判断是否碰到边缘,如果碰到边缘大小减小,如果我们的大小为零或者负数,把这个对象删除

    def update(self):
        self.rect.left += self.vx
        self.rect.top += self.vy
        a = r.randint(5,50)
        if self.rect.left <= 0 or self.rect.left >= 800-self.dx:
            self.vx = -self.vx
            self.dx-=a
            self.dx2-=a
        if self.rect.top <= 0 or self.rect.top >= 600-self.dx2:
            self.vy = -self.vy
            self.dx-=a
            self.dx2-=a
        if (self.dx2 > 1 and self.dx > 1):
            self.image = pygame.transform.scale(self.image,(self.dx,self.dx2))
        else:
            self.kill()

3.主体循环

group = pygame.sprite.Group()
while True:
    pm.fill((120,205,255))
    zt = pygame.mouse.get_pressed()
    zy = pygame.font.Font('方正黑体简体.ttf',50).render('左键增加滚轮碰到哪个哪个删除 ',True,(0,0,0))
    pm.blit(zy,(0,0))
    if zt[0]:
        group.add(Ls([100,200]))
    if zt[1]:
        wz = pygame.mouse.get_pos()
        for i in group:
            if i.rect.collidepoint(wz):     #给定点是否在给定矩形范围中,前面的是给定矩形,括号中的是点.
                i.kill()
    group.draw(pm)
    group.update()
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            exit()
    pygame.display.update()
    pygame.time.Clock().tick(20)

4.运行效果

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值