2017-08-05 5 views
0

Ich möchte die Zeit in Pygame zählen, wenn ein Ereignis auftritt. Ich habe etwas in der Dokumentation gelesen, aber ich verstehe nicht wirklich, wie es geht.Zählzeit in Pygame

In der Dokumentation können Sie Zeit in Millisekunden erhalten, aber es beginnt zu zählen, wenn der pygame.init() aufgerufen wird. Ich möchte von 0 zählen, wenn der Wahrheitswert wahr ist.

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() 

Danke für Ihre Zeit.

+0

Es gibt einen Fehler im Code. Die Schlüsselkonstanten beginnen mit 'K_', also sollte es' pygame.K_RETURN' sein. – r0the

+0

Oh, das ist überhaupt nicht wichtig, ich wollte nur demonstrieren .. Ich brauche nur den Code, um Sekunden zu zählen. –

+0

Mögliche Duplikate von [ Countdown-Timer in Pygame] (https://stackoverflow.com/questions/30720665/countdown-timer-in-pygame) – skrx

Antwort

1

Um die Zeit zu bestimmen, die seit einem bestimmten Ereignis verstrichen ist, messen Sie einfach die Zeit bei diesem Ereignis und subtrahieren sie von der aktuellen Zeit.

Hier ist ein funktionierendes Beispiel: (Tippfehler)

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

Vielen Dank! Wenn ich ein wenig mehr Zeit und Mühe in diese Frage stecke, hätte ich es mit seiner so einfachen Logik gefunden: D Danke !! –