pygame飞机大战6

本文介绍了使用Python的Pygame库实现游戏中的补给机制。包括SUPPLY_TIME定时器的设置,使每30秒触发一次补给事件,并在游戏暂停时如何正确处理定时器及音效播放的问题。此外,还涉及了普通子弹与超级子弹的不同表现形式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SUPPLY_TIME = USEREVENT

定时器,自定义事件

pygame.time.set_timer(SUPPLY_TIME, 30 * 1000)

30*1000(毫秒)为30秒,30秒触发一次

if paused:
                        pygame.time.set_timer(SUPPLY_TIME, 0)
                        pygame.mixer.music.pause()
                        pygame.mixer.pause()
                    else:
                        pygame.time.set_timer(SUPPLY_TIME, 30 * 1000)
                        pygame.mixer.music.unpause()

                        pygame.mixer.unpause()

暂停的时候,仍有背景音乐,过一会会发现有补给的出现声音

还会有大飞机的出场轰轰声,因为设置了(-1)循环播放

这算一个小BUG,

这音效是在事件这触发,而暂停管的是主逻辑

所以在暂停这添加代码

第一行为把定时器关闭,第二行为关闭音乐,第三行关闭音效。

(这是在if paused 为真时触发)

 BULLET2_NUM = 8
 for i in range(BULLET2_NUM//2):

bullets[bullet2_index].reset((me.rect.centerx-33, me.rect.centery))
bullets[bullet2_index+1].reset((me.rect.centerx+30, me.rect.centery))

bullet2_index = (bullet2_index + 2) % BULLET2_NUM

普通子弹,屏幕出现4发,以4为一个循环索引值就行

而超级子弹,子弹为8发,子弹速度为12,

需要BULLET2_NUM//2

bullet2_index+1

bullet2_index + 2

才能表现出超级子弹的特征

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值