Pygame - 运行 3 秒事件仅一次
Pygame - Run event for 3 seconds only once
我是 PyGame 的新手,我正在创建一个 space 射击游戏。这个游戏的一部分是加电,当玩家拿起特定的加电时,我希望玩家在 3 秒内不能射击。鼠标点击即可完成拍摄
我可以拿起道具,我知道玩家最后拿起的是什么道具,但我正在为这个事件而苦苦挣扎。我的想法是:
- 拾取无法射击的道具 -> 完成
- 阻止鼠标按钮
- 等待3秒,剩下的游戏还在运行
- 解锁鼠标按钮。
我知道 Python 函数(例如 wait)没有帮助。
有ideas/suggestions吗?
谢谢
当您调用 clock.tick()
时,距上次调用已 returns 次。所以节省时间: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
我是 PyGame 的新手,我正在创建一个 space 射击游戏。这个游戏的一部分是加电,当玩家拿起特定的加电时,我希望玩家在 3 秒内不能射击。鼠标点击即可完成拍摄
我可以拿起道具,我知道玩家最后拿起的是什么道具,但我正在为这个事件而苦苦挣扎。我的想法是:
- 拾取无法射击的道具 -> 完成
- 阻止鼠标按钮
- 等待3秒,剩下的游戏还在运行
- 解锁鼠标按钮。
我知道 Python 函数(例如 wait)没有帮助。
有ideas/suggestions吗? 谢谢
当您调用 clock.tick()
时,距上次调用已 returns 次。所以节省时间: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