pyxen.time
Accédez aux informations de timing basées sur les frames depuis le moteur.
Voir aussi : Game Loop.
time = pyxen.time
Le module time fournit :
- Le numéro de frame actuel
- Les images par seconde
- Le delta time
- Le temps écoulé
Toutes les propriétés sont en lecture seule.
Propriétés
| Propriété | Type | Description |
|---|---|---|
frame | int | Numéro de frame actuel depuis le démarrage |
fps | int | Images par seconde cibles |
dt | float | Delta time (secondes par frame) |
t | float | Temps écoulé en secondes |
frame
current_frame = pyxen.time.frame
- Commence à
0 - S’incrémente à chaque frame
- Utile pour la logique basée sur les frames
Exemple :
if pyxen.time.frame % 60 == 0:
print("One second passed (at 60 FPS)")
fps
fps = pyxen.time.fps
Renvoie les images par seconde du moteur.
Exemple :
print("Running at", pyxen.time.fps, "FPS")
dt (Delta Time)
delta = pyxen.time.dt
Équivalent à :
1.0 / pyxen.time.fps
Représente la durée d’une frame en secondes.
Utile pour un déplacement indépendant du framerate :
player.x += speed * pyxen.time.dt
t (Temps écoulé)
elapsed = pyxen.time.t
Équivalent à :
pyxen.time.frame / pyxen.time.fps
Représente le temps total depuis le démarrage du jeu (en secondes).
Exemple :
if pyxen.time.t > 10:
spawn_boss()
Logique basée sur les frames vs. sur le temps
Basée sur les frames
if pyxen.time.frame % 30 == 0:
blink()
Prévisible et déterministe.
Basée sur le temps
player.x += velocity * pyxen.time.dt
Indépendant des changements de FPS.
Patterns courants
Timer d’animation
if pyxen.time.t % 1.0 < 0.5:
sprite.visible = True
else:
sprite.visible = False
Timer de recharge
if pyxen.time.t - last_shot_time > 0.25:
shoot()
last_shot_time = pyxen.time.t
Action différée (basée sur les frames)
if pyxen.time.frame == 120:
start_level()
Sécurité en lecture seule
Toutes les propriétés sont en lecture seule :
pyxen.time.frame = 10 # ❌ Raises ValueError
Le moteur gère l’état du temps en interne.
Pour en savoir plus sur la boucle de jeu, consultez Game Loop.