如何制作较慢的计时器?(Python)

如何制作较慢的计时器?(Python),python,timer,counter,Python,Timer,Counter,我对使用Python还比较陌生,我正在尝试设置一个命中计时器,这样在我的游戏中,当我的玩家被击中时,它需要等待几秒钟才能再次击中他 我想我可以做一些事情,比如: while hitTimer > 0: hitTimer -= 1 被击中会将计数器重置为10,并要求计数器为>0才能再次被击中,但速度非常快 我尝试使用非常小的数字,如-=.00005,但这只会使我的程序滞后 我怎样才能使它每秒减少1次或类似的速度 谢谢您的帮助。使用time.clock()检查时间,使用time.sl

我对使用Python还比较陌生,我正在尝试设置一个命中计时器,这样在我的游戏中,当我的玩家被击中时,它需要等待几秒钟才能再次击中他

我想我可以做一些事情,比如:

while hitTimer > 0:
    hitTimer -= 1
被击中会将计数器重置为
10
,并要求计数器为
>0
才能再次被击中,但速度非常快

我尝试使用非常小的数字,如
-=.00005
,但这只会使我的程序滞后

我怎样才能使它每秒减少1次或类似的速度

谢谢您的帮助。

使用
time.clock()
检查时间,使用
time.sleep()等待


永远不要依赖CPU速度来计时代码。

您只需使用
time.time()记录某人被击中的时间即可:

然后将当前时间与上次点击时间进行比较:

if time.time() - lastHit > NUMBER_OF_SECONDS:
  # ... do seomthing about getting hit ...
  lastHit = time.time()

要精确检查10秒钟,请执行以下操作:

import time
# record when person was first hit.
previousHit = time.time()

if time.time() - previousHit > 10:
    # The rest of your logic for getting hit.
    previousHit = time.time() # Reset the timer to get the hit again.

我看到的一个问题是,这似乎会暂停执行,玩家和游戏应该仍然能够继续执行。然后你可以使用线程,或者(更丑陋的解决方案)忙碌地等待时机成熟。
import time
# record when person was first hit.
previousHit = time.time()

if time.time() - previousHit > 10:
    # The rest of your logic for getting hit.
    previousHit = time.time() # Reset the timer to get the hit again.