pyxen.time
Zugriff auf framebasierte Timing-Informationen der Engine.
Siehe auch: Game Loop.
time = pyxen.time
Das time-Modul bietet:
- Aktuelle Frame-Nummer
- Bilder pro Sekunde
- Delta-Zeit
- Verstrichene Zeit
Alle Eigenschaften sind nur lesbar.
Eigenschaften
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
frame | int | Aktuelle Frame-Nummer seit Start |
fps | int | Ziel-Bildrate |
dt | float | Delta-Zeit (Sekunden pro Frame) |
t | float | Verstrichene Zeit in Sekunden |
frame
current_frame = pyxen.time.frame
- Beginnt bei
0 - Wird jeden Frame erhöht
- Nützlich für framebasierte Logik
Beispiel:
if pyxen.time.frame % 60 == 0:
print("Eine Sekunde vergangen (bei 60 FPS)")
fps
fps = pyxen.time.fps
Gibt die Bilder pro Sekunde der Engine zurück.
Beispiel:
print("Läuft mit", pyxen.time.fps, "FPS")
dt (Delta-Zeit)
delta = pyxen.time.dt
Entspricht:
1.0 / pyxen.time.fps
Repräsentiert die Dauer eines einzelnen Frames in Sekunden.
Nützlich für bildratenunabhängige Bewegung:
player.x += speed * pyxen.time.dt
t (Verstrichene Zeit)
elapsed = pyxen.time.t
Entspricht:
pyxen.time.frame / pyxen.time.fps
Repräsentiert die Gesamtzeit seit Spielstart (in Sekunden).
Beispiel:
if pyxen.time.t > 10:
spawn_boss()
Framebasierte vs. zeitbasierte Logik
Framebasiert
if pyxen.time.frame % 30 == 0:
blink()
Vorhersagbar und deterministisch.
Zeitbasiert
player.x += velocity * pyxen.time.dt
Unabhängig von FPS-Änderungen.
Häufige Muster
Animations-Timer
if pyxen.time.t % 1.0 < 0.5:
sprite.visible = True
else:
sprite.visible = False
Abklingzeit-Timer
if pyxen.time.t - last_shot_time > 0.25:
shoot()
last_shot_time = pyxen.time.t
Verzögerte Aktion (framebasiert)
if pyxen.time.frame == 120:
start_level()
Nur-Lesen-Schutz
Alle Eigenschaften sind nur lesbar:
pyxen.time.frame = 10 # Löst ValueError aus
Die Engine verwaltet den Zeitzustand intern.
Mehr zum Game Loop findest du unter Game Loop.