2017-08-05 277 views
0

我想在事件發生時計算pygame中的時間。我已經閱讀了文檔中的一些內容,但我並不真正瞭解如何去做。在pygame中計算時間

在文檔中,您可以獲得以毫秒爲單位的時間,但在調用pygame.init()時它會開始計數。當布爾值爲真時,我想從0開始計數。

import pygame 
pygame.init() 

loop = True 

boolean = False 

while loop: 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      pygame.quit() 
      quit() 
     if event.type == pygame.KEYDOWN: 
      if event.key == pygame.RETURN: 
       boolean = True 

    screen.fill((255, 255, 255)) 

    if boolean: 
     # start counting seconds 

    pygame.display.update() 

謝謝你的時間。

+0

有沒有在你的代碼中的錯誤。鍵常量以'K_'開頭,所以它應該是'pygame.K_RETURN' – r0the

+0

哦,即使在所有我只是想演示無關緊要..我只需要如何計算秒的代碼.. –

+0

可能重複的[ Pygame中的倒數計時器](https://stackoverflow.com/questions/30720665/countdown-timer-in-pygame) – skrx

回答

1

要確定某個事件發生後的時間,只需測量該事件的時間並從當前時間中減去該時間即可。

這裏的工作的例子:(?錯字)

import pygame 

pygame.init() 

FONT = pygame.font.SysFont("Sans", 20) 
TEXT_COLOR = (0, 0, 0) 
BG_COLOR = (255, 255, 255) 

loop = True 
start_time = None 
screen = pygame.display.set_mode((800, 600)) 
clock = pygame.time.Clock() 
while loop: 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      pygame.quit() 
      quit() 
     if event.type == pygame.KEYDOWN: 
      if event.key == pygame.K_RETURN: 
       start_time = pygame.time.get_ticks() 

    screen.fill(BG_COLOR) 

    if start_time: 
     time_since_enter = pygame.time.get_ticks() - start_time 
     message = 'Milliseconds since enter: ' + str(time_since_enter) 
     screen.blit(FONT.render(message, True, TEXT_COLOR), (20, 20)) 

    pygame.display.flip() 
    clock.tick(60) 

pygame.quit() 
+0

非常感謝!如果我在這個問題上多花一點時間和精力,我會想出它的如此簡單的邏輯:D謝謝! –