Temporizador de cuenta regresiva en Pygame

Resuelto adamo94 asked hace 9 años • 8 respuestas

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?

adamo94 avatar Jun 09 '15 06:06 adamo94
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)

ingrese la descripción de la imagen aquí

sloth avatar Jun 09 '2015 10:06 sloth

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
DanteVoronoi avatar Jun 08 '2015 23:06 DanteVoronoi