Saltar al contenido

pygame clock.tick () vs framerate en el bucle principal del juego

Solución:

FPS, Cuadros por segundo, es el número de fotogramas mostrados por unidad de tiempo.
1 / FPS es la cantidad de tiempo que debe pasar entre cada fotograma.
Garrapata es solo una medida de tiempo en PyGame.

clock.tick(40) significa que por cada segundo a lo sumo Deben pasar 40 fotogramas.

Configuré fps altos: clock.tick (30) o 60, y el juego se ejecuta rápido, y get_ticks () imprime el tiempo transcurrido muy rápido, pero el tiempo de ejecución real de pygame.init () ¡no cambio!

¡Pensé que el tiempo corre más rápido debido a los altos FPS! No es así, probé clock.tick (0.1), también conocido como 1 fotograma cada 10 segundos, y get_ticks () imprimió solo su tiempo transcurrido ¡UNA VEZ CADA 10 segundos! Porque el ciclo while se estaba ejecutando a través de sí mismo a fps = 0.1.

Pero si los fps eran más altos, el la tasa de actualización sería mayorno el tiempo total transcurrido

Ahora lo descubrí.

Sé que ya está respondido pero quería explicar algo me cansé

import pygame

pygame.init()

gameDisplay = pygame.display.set_mode((800,600))
clock = pygame.time.Clock()

crashed = False

counter = 1
while not crashed:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            crashed = True

    pygame.display.update()
    print(counter)
    counter += 1
    clock.tick(1) # will be 10 in the next run 

así que lo que haremos es hacer dos carreras, una con fotogramas por segundo igual a 1 y la otra con 10, y ejecutaremos el código durante 10 segundos “Usé el cronómetro de mi teléfono para hacer esto”.

así que matemáticamente 1 fps por 10 segundos es 10 correcto y 10 fps en 10 segundos son 100 “duuh”, por lo que lo que debería obtener ejecutando la primera ejecución “1 fps” es que la variable del contador debe ser de alrededor de 10 “depende de su tiempo” y la segunda ejecución al final de la variable de contador de 10 segundos en su consola debe ser alrededor de 100

entonces, en resumen, podríamos decir que el ciclo está controlando la pantalla de tu juego y el reloj.tick () especifica qué tan rápido quieres cambiar la pantalla del juego, en otras palabras, qué tan rápido se ejecuta el ciclo

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *