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