pyxen.time
Accede a la información de temporización basada en fotogramas del motor.
Ver también: Bucle del juego.
time = pyxen.time
El módulo time proporciona:
- Número de fotograma actual
- Fotogramas por segundo
- Tiempo delta
- Tiempo transcurrido
Todas las propiedades son solo lectura.
Propiedades
| Propiedad | Tipo | Descripción |
|---|---|---|
frame | int | Número de fotograma actual desde el inicio |
fps | int | Fotogramas por segundo objetivo |
dt | float | Tiempo delta (segundos por fotograma) |
t | float | Tiempo transcurrido en segundos |
frame
current_frame = pyxen.time.frame
- Comienza en
0 - Se incrementa cada fotograma
- Útil para lógica basada en fotogramas
Ejemplo:
if pyxen.time.frame % 60 == 0:
print("Ha pasado un segundo (a 60 FPS)")
fps
fps = pyxen.time.fps
Devuelve los fotogramas por segundo del motor.
Ejemplo:
print("Ejecutando a", pyxen.time.fps, "FPS")
dt (tiempo delta)
delta = pyxen.time.dt
Equivalente a:
1.0 / pyxen.time.fps
Representa la duración de un solo fotograma en segundos.
Útil para movimiento independiente de la tasa de fotogramas:
player.x += speed * pyxen.time.dt
t (tiempo transcurrido)
elapsed = pyxen.time.t
Equivalente a:
pyxen.time.frame / pyxen.time.fps
Representa el tiempo total desde que el juego comenzó (en segundos).
Ejemplo:
if pyxen.time.t > 10:
spawn_boss()
Lógica basada en fotogramas vs basada en tiempo
Basada en fotogramas
if pyxen.time.frame % 30 == 0:
blink()
Predecible y determinista.
Basada en tiempo
player.x += velocity * pyxen.time.dt
Independiente de cambios en FPS.
Patrones comunes
Temporizador de animación
if pyxen.time.t % 1.0 < 0.5:
sprite.visible = True
else:
sprite.visible = False
Temporizador de enfriamiento
if pyxen.time.t - last_shot_time > 0.25:
shoot()
last_shot_time = pyxen.time.t
Acción retrasada (basada en fotogramas)
if pyxen.time.frame == 120:
start_level()
Seguridad de solo lectura
Todas las propiedades son solo lectura:
pyxen.time.frame = 10 # Produce ValueError
El motor gestiona el estado del tiempo internamente.
Para más información sobre el bucle del juego, consulta Bucle del juego.