Reloj de Pygame y bucles de eventos.

Resuelto conyieie asked hace 4 años • 1 respuestas

Soy nuevo en pygame y me preguntaba qué es un bucle de eventos y qué hace el reloj en esta situación, ¿qué es clock.tick(60)? No entiendo ninguna explicación en línea.

clock = pygame.time.Clock()
run = True
while run:
    clock.tick(60)
    # event loop
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
conyieie avatar Feb 28 '20 08:02 conyieie
Aceptado

El método tick()de un pygame.time.Clockobjeto retrasa el juego de tal manera que cada iteración del bucle consume el mismo período de tiempo.
Eso significa que el bucle:

clock = pygame.time.Clock()
run = True
while run:
   clock.tick(60)

corre 60 veces por segundo.

for event in pygame.event.get()maneja los eventos internos y recupera una lista de eventos externos (los eventos se eliminan de la cola de eventos interna).
Si presiona el botón de cerrar de la ventana, provocará el QUITevento y obtendrá el evento for event in pygame.event.get(). Consulte pygame.eventlos diferentes tipos de eventos. por ejemplo, KEYDOWNocurre una vez cuando se presiona una tecla.

Por ejemplo, el siguiente bucle imprime los nombres de una tecla una vez que se presiona:

run = True
while run:

    # event loop
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
        if event.type == pygame.KEYDOWN:
            print(pygame.key.name(event.key))
Rabbid76 avatar Feb 28 '2020 07:02 Rabbid76