Timer#

Timer-Klassen planen Aktionen die in späteren Frames ausgelöst werden.

Die Decorators timer und loop sind Hilfsfunktionen für einmalige und wiederholte Aktionen.

API-Referenz#

Timer#

class miniworlds.tools.timer.Timer(time)[Quellcode]#

Timer, der act() nach einem Frame-Intervall wiederholt aufruft.

Leite davon ab und überschreibe act(), wenn du eigene Timer-Logik brauchst. Für die meisten Fälle sind ActionTimer oder der Decorator @timer besser geeignet.

Parameter:

time – Frame-Intervall.

Beispiele

class BlinkTimer(Timer):
    def act(self):
        actor.visible = not actor.visible
act()[Quellcode]#

Hook-Methode, die ausgeführt wird, wenn das Timer-Intervall erreicht ist.

Unterklassen überschreiben diese Methode mit der Aktion, die nach der eingestellten Anzahl von Frames passieren soll.

tick()[Quellcode]#

Zählt Frames und ruft act() auf, wenn das Intervall erreicht ist.

Diese Methode wird von der Welt automatisch einmal pro Frame aufgerufen.

ActionTimer#

class miniworlds.tools.timer.ActionTimer(time, method, arguments=None)[Quellcode]#

Ruft eine Methode nach time Frames auf.

Parameter:
  • time – Frames, die vor dem Methodenaufruf gewartet werden.

  • method – Aufzurufende Methode.

  • arguments – Optionales einzelnes Argument, das an die Methode übergeben wird.

Beispiele

ActionTimer(48, player.move, 2)

@timer(frames=24)
def moving():
    player.move()
__init__(time, method, arguments=None)[Quellcode]#

Erzeugt einen einmaligen Aktionstimer.

Parameter:
  • time – Frames, die vor dem Methodenaufruf gewartet werden.

  • method – Aufzurufende Methode.

  • arguments – Optionales einzelnes Argument, das an die Methode übergeben wird.

act()[Quellcode]#

Ruft die gespeicherte Methode einmal auf und meldet den Timer danach ab.

Das ist das Verhalten hinter @timer und einmalig verzögerten Aktionen.

LoopActionTimer#

class miniworlds.tools.timer.LoopActionTimer(time, method, arguments=None)[Quellcode]#

Ruft eine Methode nach jeweils time Frames wiederholt auf, bis der Timer abgemeldet wird.

Beispiele

LoopActionTimer(48, player.move, 2)

@loop(frames=24)
def moving():
    player.move()
act()[Quellcode]#

Ruft die gespeicherte Methode einmal auf und meldet den Timer danach ab.

Das ist das Verhalten hinter @timer und einmalig verzögerten Aktionen.

timer#

miniworlds.tools.timer.timer(*args, **kwargs)[Quellcode]#

Dekoriert eine Funktion, damit sie nach einer Anzahl von Frames einmal ausgeführt wird.

Parameter:

frames – Frames, die vor dem Ausführen der Funktion gewartet werden.

Beispiele

@timer(frames=24)
def moving():
    player.move()

loop#

miniworlds.tools.timer.loop(*args, **kwargs)[Quellcode]#

Dekoriert eine Funktion, damit sie nach einem Frame-Intervall wiederholt ausgeführt wird.

Parameter:

frames – Frames zwischen den Funktionsaufrufen.

Beispiele

@loop(frames=24)
def moving():
    player.move()