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 sindActionTimeroder der Decorator@timerbesser 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
timeFrames 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
@timerund einmalig verzögerten Aktionen.
LoopActionTimer#
- class miniworlds.tools.timer.LoopActionTimer(time, method, arguments=None)[Quellcode]#
Ruft eine Methode nach jeweils
timeFrames 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
@timerund 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()