是否可以在 PyGame 中重置计时器?
Is it possible to reset a Timer in PyGame?
第一次发帖,希望大家多多支持:)
我正在做一个项目,我想在其中玩 SET 游戏。一切正常(JEEJ),但是我希望能够使用某种时间功能。这将执行以下操作:
at start of game the time starts running
if x:
y
reset timer to zero
elif not x and time == 30:
do some action
我尝试了很多东西;使用 time.time(),但据我所知无法重置;我发现了一些像 类 这样的秒表,我尝试使用它们,但它们很慢(?);我试过perf_counter()...但现在我不知所措,所以我希望你们中的任何人都知道该怎么做...
请注意,我想在时间运行时“玩”游戏并执行操作......
非常感谢!
有几种方法可以解决这个问题。一是使用时间:
import time
timer_start = time.time()
if x:
y
timer_start = time.time()
if not x and time.time() >= timer_start + 30:
do some action
请注意,我使用 >= 因为时间不太可能恰好是 30.0,最好在之后的第一次触发它。
另一种方法是使用pygame.time.set_timer()
:
pygame.time.set_timer(pygame.USEREVENT, 30000) #milliseconds
# You cal also use USEREVENT+1, USEREVENT+2 etc. if you want multiple timers
if x:
pygame.time.set_timer(pygame.USEREVENT, 30000) #milliseconds
for event in pygame.event.get(): #merge this with your actual event loop
if event.type == pygame.USEREVENT:
if not x:
y
# reset the timer since it repeats by default
pygame.time.set_timer(pygame.USEREVENT, 0)
第一次发帖,希望大家多多支持:)
我正在做一个项目,我想在其中玩 SET 游戏。一切正常(JEEJ),但是我希望能够使用某种时间功能。这将执行以下操作:
at start of game the time starts running
if x:
y
reset timer to zero
elif not x and time == 30:
do some action
我尝试了很多东西;使用 time.time(),但据我所知无法重置;我发现了一些像 类 这样的秒表,我尝试使用它们,但它们很慢(?);我试过perf_counter()...但现在我不知所措,所以我希望你们中的任何人都知道该怎么做... 请注意,我想在时间运行时“玩”游戏并执行操作...... 非常感谢!
有几种方法可以解决这个问题。一是使用时间:
import time
timer_start = time.time()
if x:
y
timer_start = time.time()
if not x and time.time() >= timer_start + 30:
do some action
请注意,我使用 >= 因为时间不太可能恰好是 30.0,最好在之后的第一次触发它。
另一种方法是使用pygame.time.set_timer()
:
pygame.time.set_timer(pygame.USEREVENT, 30000) #milliseconds
# You cal also use USEREVENT+1, USEREVENT+2 etc. if you want multiple timers
if x:
pygame.time.set_timer(pygame.USEREVENT, 30000) #milliseconds
for event in pygame.event.get(): #merge this with your actual event loop
if event.type == pygame.USEREVENT:
if not x:
y
# reset the timer since it repeats by default
pygame.time.set_timer(pygame.USEREVENT, 0)