pygame飞机大战3

self.destroy_images.extend([\
            pygame.image.load("images/enemy1_down1.png").convert_alpha(), \
            pygame.image.load("images/enemy1_down2.png").convert_alpha(), \
            pygame.image.load("images/enemy1_down3.png").convert_alpha(), \
            pygame.image.load("images/enemy1_down4.png").convert_alpha() \

            ])

添加图片(飞机被摧毁的过程图)

先设置self.active=True,表示飞机存活,发生碰撞后调用毁灭过程图片

然后调用reset函数

if not(delay % 3):
                    if e2_destroy_index == 0:
                        enemy2_down_sound.play()
                    screen.blit(each.destroy_images[e2_destroy_index], each.rect)
                    e2_destroy_index = (e2_destroy_index + 1) % 4
                    if e2_destroy_index == 0:

                        each.reset()

飞机毁灭,先调用 e2_destroy_index=0的图片,然后1,2,3,

调用完3后,变为0再调用reset

pygame.sprite.spritecolode(me,enemies,False)

碰撞检测返回的是列表,但这个碰撞检测的是个矩形,用户体验不佳

pygame.mask.from_surface(self.image)

pygame.sprite.spritecollide(me, enemies, False, pygame.sprite.collide_mask)

mask标记图片不透明的部分,检测不透明部分,这下是完美碰撞了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值