我对 PyGame 还很陌生,我正在创建一个太空射击游戏。这个游戏的一部分是通电,当玩家拾取特定的通电时,我希望玩家在 3 秒内不能射击。射击是通过鼠标点击完成的。
我可以捡起道具,我知道玩家上次捡到的道具是什么,但我正在为这个事件而苦苦挣扎。我正在考虑的实施方式是:
- Can't Shoot power up 被拾取 -> 完成了
- 阻止鼠标按钮
- 等待 3 秒,而游戏的其余部分仍在运行
- 取消阻止鼠标按钮。
我知道 Python 函数(例如 wait)无济于事。
有什么想法/建议吗?谢谢
我对 PyGame 还很陌生,我正在创建一个太空射击游戏。这个游戏的一部分是通电,当玩家拾取特定的通电时,我希望玩家在 3 秒内不能射击。射击是通过鼠标点击完成的。
我可以捡起道具,我知道玩家上次捡到的道具是什么,但我正在为这个事件而苦苦挣扎。我正在考虑的实施方式是:
我知道 Python 函数(例如 wait)无济于事。
有什么想法/建议吗?谢谢
当您调用clock.tick()
它时,它会返回自上次调用以来的时间。所以节省时间:dt = clock.tick()
然后使用该变量来倒计时。
例子:
dt = clock.tick() # only call once per iteration
if attack_blocked:
attack_block_count += dt
if attack_block_count >= 3000: # dt is in ms
attack_blocked = False
示例 2:
while True:
dt = clock.tick(60)
for event....
if block_attack_power_up:
attack_blocked = True
attack_block_count = 0
if not attack_blocked:
# do your attack
if attack_blocked:
attack_block_count += dt
if attack_block_count >= 3000:
attack_blocked = False