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

EigenschaftTypBeschreibung
frameintAktuelle Frame-Nummer seit Start
fpsintZiel-Bildrate
dtfloatDelta-Zeit (Sekunden pro Frame)
tfloatVerstrichene 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.