Temporizador de cuenta regresiva en Pygame
Empecé a usar pygame y quiero hacer un juego sencillo. Uno de los elementos que necesito es el temporizador de cuenta regresiva. ¿Cómo puedo hacer el tiempo de cuenta regresiva (por ejemplo, 10 segundos) en PyGame?
Aceptado
Otra forma sencilla es simplemente utilizar el sistema de eventos de pygame.
He aquí un ejemplo sencillo:
import pygame
pygame.init()
screen = pygame.display.set_mode((128, 128))
clock = pygame.time.Clock()
counter, text = 10, '10'.rjust(3)
pygame.time.set_timer(pygame.USEREVENT, 1000)
font = pygame.font.SysFont('Consolas', 30)
run = True
while run:
for e in pygame.event.get():
if e.type == pygame.USEREVENT:
counter -= 1
text = str(counter).rjust(3) if counter > 0 else 'boom!'
if e.type == pygame.QUIT:
run = False
screen.fill((255, 255, 255))
screen.blit(font.render(text, True, (0, 0, 0)), (32, 48))
pygame.display.flip()
clock.tick(60)
En esta página encontrarás lo que buscas http://www.pygame.org/docs/ref/time.html#pygame.time.get_ticks
Descargas ticks una vez antes de comenzar la cuenta regresiva (lo que puede ser un disparador en el juego - el evento clave, lo que sea). Por ejemplo:
start_ticks=pygame.time.get_ticks() #starter tick
while mainloop: # mainloop
seconds=(pygame.time.get_ticks()-start_ticks)/1000 #calculate how many seconds
if seconds>10: # if more than 10 seconds close the game
break
print (seconds) #print how many seconds