Bezeichnung
WaitTimer -- wartet, bis der Zeitmesser eine bestimmte Zeit erreicht hat (V2.0)
Übersicht
WaitTimer(id[, time, reset])
t = WaitTimer(table[, reset]) (V9.0)
Beschreibung
Dieser Befehl wartet, bis der durch id angegebene Zeitmesser für die im Argument time angegebene Zeit abgelaufen ist. Diese Zeit muss in Millisekunden angegeben werden. Wenn Sie das Argument time weglassen oder auf -1 setzen, wartet WaitTimer(), bis der Zeitmesser seinen mit SetTimerElapse() oder StartTimer() eingestellten Schwellenwert erreicht hat.

Bevor dieser Befehl zurückkehrt, wird auch der angegebene Zeitmesser zurückgesetzt, so dass Sie diesen Befehl problemlos in einer Schleife verwenden können. Sie können dieses Verhalten ändern, indem Sie das optionale Argument reset auf False setzen. In diesem Fall wird der Zeitmesser nicht zurückgesetzt.

Ab Hollywood 9.0 gibt es eine alternative Möglichkeit, WaitTimer() zu verwenden. Anstelle der ID eines einzelnen Zeitmessers können Sie auch eine Tabelle mit mehreren Zeitmesser-Identifikatoren übergeben. In diesem Fall wartet WaitTimer(), bis mindestens einer der Zeitmesser aus der im Argument table angegebenen Liste abgelaufen ist. Sobald dies geschieht, gibt WaitTimer() eine Tabelle an Sie zurück. Diese Tabelle ist eine Liste mit den Identifikatoren aller abgelaufenen Zeitmesser. Wenn das Argument reset True ist, was auch der Standardwert ist, werden alle abgelaufenen Zeitmesser von WaitTimer() zurückgesetzt. Beachten Sie, dass die Tabelle, die Sie an WaitTimer() übergeben, auch leer sein kann. In diesem Fall wartet WaitTimer() einfach darauf, dass ein Zeitmesser von allen aktuell laufenden Zeitmesser abgelaufen ist.

WaitTimer() kann sehr nützlich sein, um die Ausführung von Schleifen zu drosseln, damit sie nicht die gesamte CPU-Leistung verbrauchen. Wenn Sie beispielsweise eine Schleife haben, die ein Sprite vom linken zum rechten Rand des Displays bewegt, sollten Sie eine Art Drosselung hinzufügen, da es nicht sinnvoll ist, den Bildschirm häufiger zu aktualisieren, als der Monitor aktualisiert wird. Dies ist sehr wichtig. Auch wenn das Skript ohne WaitTimer() mit perfekter Geschwindigkeit läuft, sollten Sie nicht vergessen, dass es schnellere Rechner als Ihren gibt. Die Verwendung von WaitTimer() in Ihren Schleifen stellt sicher, dass Ihr Programm auf jeder Plattform mit der gleichen Geschwindigkeit ausgeführt wird.

Siehe Zeitsteuerung des Skripts für Details.

Siehe auch GetTimer(), StartTimer(), StopTimer(), PauseTimer(), ResetTimer(), ResumeTimer(), SetTimerElapse() und TimerElapsed().

Eingaben
id
syntax 1: ID des Zeitmessers
time
syntax 1, optional: Zeit in Millisekunden, die der Zeitmesser erreichen muss (Standardwert ist der Schwellenwert für das Ablaufen des Zeitmessers)
table
syntax 2: übergeben Sie hier eine Tabelle mit einer Liste von Zeitmessern und WaitTimer() wird zurückkehren, sobald ein Zeitmesser aus der Liste abgelaufen ist (siehe oben); wenn Sie eine leere Tabelle übergeben, werden alle laufenden Zeitmesser berücksichtigt
reset
optional: gibt an, ob der Zeitmesser nach erreichter Zeit zurückgesetzt wird oder nicht (Standard ist True was bedeutet, dass der Zeitmesser zurückgesetzt wird)
Beispiel
StartTimer(1)
For k = 0 To 640
   DisplaySprite(1, k, 0)
   WaitTimer(1, 40)
Next
Im obigen Code läuft Sprite 1 von links nach rechts. Mit jedem Aufruf von DisplaySprite() und WaitTimer() ist sichergestellt, dass mindestens 40 Millisekunden gewartet wird, bis zum nächsten DisplaySprite(). Daher wird diese Schleife nicht mehr als 25 Mal pro Sekunde ausgeführt werden, da 40 * 25 = 1000 Millisekunden (1 Sekunde).

Navigation zeigen