[id] = SetInterval(id, func, ms[, userdata])
id
angeben, wird SetInterval()
automatisch eine ID wählen und sie Ihnen übergeben.
Sie müssen im Argument func
eine Funktion und in ms
die Zeit in Millisekunden angeben.
Die angegebene Funktion wird dann wieder und wieder und wieder in den Abständen der angegebenen
Zeit aufgerufen werden. Wenn Sie zum Beispiel 40 als Intervall angeben, wird Ihre Funktion
alle 40 Millisekunden aufgerufen werden, das 25-mal pro Sekunde entspricht (25 * 40 ms = 1000 ms = 1 Sekunde).
Das reicht für die meisten Spiele, Intros usw.
Die Funktion, die Sie in func
angeben, wird zum ersten Mal aufgerufen werden, wenn die in
ms
angegebene Zeit verstrichen ist. Danach wird Ihre Funktion wiederholt in Intervallen von
ms
Millisekunden aufgerufen werden.
Sie müssen immer WaitEvent() in Verbindung mit diesem Befehl verwenden! Wenn eine Intervallfunktion installiert ist, wird der interne Hollywood-Timer Intervall-Ereignisse auslösen und WaitEvent() informieren, dass er Ihre Intervallfunktion aufruft. Intervalle funktionieren nicht ohne WaitEvent()! Wenn Sie WaitEvent() nicht verwenden, wird Ihre Intervallfunktion nie aufgerufen werden. Intervallfunktionen werden nur so lange aufgerufen, wie Sie in einer WaitEvent()-Schleife sind.
Dieser Befehl ist sehr wichtig, weil er Ihnen hilft sicherzustellen, dass Ihr Skript auf jedem System mit der gleichen Geschwindigkeit ausgeführt wird. Siehe Zeitsteuerung des Skripts für weitere Informationen zu diesem Thema und auch für ein Beispiel.
Sie können beliebig viele Intervalle installieren. Hollywoods interner Scheduler wird sicherstellen, dass alle Intervallfunktionen korrekt aufgerufen werden.
Bitte denken Sie daran, dass Hollywood nicht Multithreading unterstützt. Daher dürfen
Ihre Intervallfunktionen das Skript nicht blockieren, andernfalls wird das gesamte Skript
gesperrt. Zum Beispiel, wenn Sie zwei Intervallfunktionen installiert haben und eine dieser
Funktionen führt den Befehl Wait(100)
aus, dann wird das gesamte Skript für 2 Sekunden gesperrt.
Sie können den Befehl ClearInterval() aufrufen, um eine Intervallfunktion zu stoppen.
Ab Hollywood 3.1 gibt es das optionale Argument userdata
. Der Wert, den Sie hier angeben,
wird der Callback-Funktion übergeben, wenn sie aufgerufen wird. Dies ist nützlich, wenn Sie
die Arbeit mit globalen Variablen vermeiden möchten. Mit Hilfe von dem Argument userdata
können
Sie ganz einfach Daten an Ihre Callback-Funktion übergeben. Sie können einen Wert eines beliebigen
Typs wie Zahlen, Zeichenketten, Tabellen und Funktionen angeben.
Ihre Intervallfunktion wird von Hollywood mit einem Parameter aufgerufen werden. Dieser Parameter ist eine Nachrichtentabelle, die folgende Felder enthält:
Action:
Interval
gesetzt. Dieses Feld ist eine Zeichenkette!
ID:
UserData:
userdata
gesetzt, den Sie im Argument userdata
angegeben haben,
als Sie die Intervallfunktion installiert haben.
Diese Meldung ist nützlich, wenn Sie zwei oder mehr Intervalle in der gleichen Funktion handhaben wollen. Die Meldung sagt Ihnen dann, welches Intervall Hollywood ausführt. Wenn Sie diese Nachricht nicht brauchen, einfach ignorieren.
Last but not least: Sie sollten einen Blick in die Beispiele werfen, die mit Hollywood
geliefert wurden. Viele von ihnen verwenden SetInterval()
, um den Zeitpunkt des Skripts
zu verwalten!
Weiterer Intervall-Befehl: ChangeInterval()