Pygame - 仅运行一次3秒的事件

时间:2016-02-05 22:08:05

标签: python pygame pygame-clock pygame-tick

我是PyGame的新手,我正在创造一个太空射击游戏。这个游戏的一部分是通电,当玩家拾取特定的加电时,我希望玩家不能射击3秒。通过鼠标点击进行拍摄。

我可以接受电力消耗,我知道玩家最后选择了多少电力,但我正在努力解决这个问题。我如何考虑实施:

  1. 无法拍摄上电 - >已经完成了
  2. 阻止鼠标按钮
  3. 等待3秒,而游戏的其余部分仍在运行
  4. 取消阻止鼠标按钮。
  5. 我知道Python等函数(例如wait)无济于事。

    任何想法/建议? 感谢

1 个答案:

答案 0 :(得分:-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
相关问题