1

我对 PyGame 还很陌生,我正在创建一个太空射击游戏。这个游戏的一部分是通电,当玩家拾取特定的通电时,我希望玩家在 3 秒内不能射击。射击是通过鼠标点击完成的。

我可以捡起道具,我知道玩家上次捡到的道具是什么,但我正在为这个事件而苦苦挣扎。我正在考虑的实施方式是:

  1. Can't Shoot power up 被拾取 -> 完成了
  2. 阻止鼠标按钮
  3. 等待 3 秒,而游戏的其余部分仍在运行
  4. 取消阻止鼠标按钮。

我知道 Python 函数(例如 wait)无济于事。

有什么想法/建议吗?谢谢

4

1 回答 1

-1

当您调用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
于 2016-02-05T22:28:51.670 回答