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() ......但现在我不知所措,所以我希望你们中的任何人都知道该怎么做......请注意,我想“玩”游戏并在时间流逝时做一些动作......提前谢谢了!

4

1 回答 1

2

有几种方法可以解决这个问题。一是使用时间:

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)
        
于 2020-06-24T19:18:56.063 回答