![]() |
Über Bedingungen (Forks) |
Bedingungen sind immer dann interessant, wenn es um etwas kompliziertere Aufträge geht oder es bei gewissen Ereignissen Abzweigungen geben soll, beispielsweise wenn sich eine Tür nur dann öffnen soll, wenn eure Charaktere einen bestimmten Gegenstand, beispielsweise einen Schlüssel oder eine Keykarte haben. Doch... was genau sind die Bedingungen oder Forks, wie sie genannt werden?
![]() |
Was genau sind Forks/Bedingungen und wie sind sie aufgebaut? |
![]() |
Besondere Arten von Schleifen mit Forks/Bedingungen |
Nur Bedingungen, die gewisse Umstände abfragen, sind auf Dauer ein bisschen mager für ein Rollenspiel. Auch, wenn man sich Programmiersprachen wie beispielsweise Java und C/C++ anschaut, so bieten diese in der Beziehung einiges mehr an Möglichkeiten, die im Folgendem mit dem Maker nachgebaut werden sollen:
Die Funktion einer For-Schleife besteht darin, dass zuerst eine Zähler-Variable auf einen Startwert gesetzt wird. Danach folgt die Deklaration einer Bedingung. So lange diese Bedingung erfüllt ist, soll die For-Schleife durchlaufen werden und nach jedem Durchlauf der Zähler verändert (in der Regel erhöht oder verringert) werden. In Java und C++ sieht eine For-Schleife in Code-Form wie folgt aus:
for (int counter = 0; counter < 10; counter
+ 1) { //Inhalt der For-Schleife } |
In diesem Beispielcode, der in Java wie auch in C/C++ identisch ist, wird
zuerst eine Variable Counter bestimmt, die als Startwert "0" (Null) hat (int ist
der Standard-Datentyp für ganze Zahlen). Die Bedingung folgt direkt daneben und
sagt aus, dass die Variable "counter" kleiner als 10 sein muss, damit die
Bedingung erfüllt ist. Direkt daneben wiederum folgt die Anweisung, dass nach
einmaligem Schleifendurchlauf die Variable "counter" um den Wert "1" erhöht
wird. Der eigentliche Code innerhalb der For-Schleife würde sich innerhalb der
beiden geschreiften Klammern befinden (an der Stelle des
grün hervorgehobenen Bereichs).
Nur... wie lässt sich eine Schleife im Maker nachbauen, die von der
Funktionsweise her der oben als Codebeispiel aufgeführten entspricht?
Zuerst einmal muss die For-Schleife von oben in ihre einzelnen Bestandteile zerlegt werden, die da wären:
![]() |
Eine Zählervarialbe | : | Damit eine For-Schleife nicht zu einer Endlosschleife wird, kann es
eine Zählervariable geben, die noch in der Bedingung abgefragt wird, ob
und wie sie sich im Vergleich zu einem bestimmten Wert verhält. Eine Zählervariable muss nicht zwingend angelegt werden. |
![]() |
Eine Bedingung | : | Sie bestimmt, ob es zu weiteren Schleifendurchläufen kommen wird
oder nicht. Ist die Bedingung nicht erfüllt, soll ohne
Schleifendurchlauf sofort aus der Schleife ausgebrochen und mit dem nach
ihr folgendem Code fortgefahren werden. |
![]() |
Eine Endlosschleife | : | Da der Inhalt einer For-Schleife immer dann wiederholend ausgeführt
wird, so lange die Bedingung erfüllt ist, muss es eine "Endlos-Schleife"
geben, die für die Wiederholung sorgt. |
![]() |
Veränderung der Zählervariable | : | Das allerletzte Stückchen Code innerhalb der im Maker nachgebauten
For-Schleife muss (wenn es eine Zählervariable gibt) die "Anweisung zur
Veränderung der Zählervariable" sein. Schließlich soll ja irgendwann ein
bestimmter Zählerstand erreicht sein. Eine Veränderung der Zählervariable muss nur dann angelegt werden, wenn es eine Zählervariable gibt. Fehlt diese, macht eine Veränderung einer Zählervariable keinen Sinn. |
![]() |
Ausbruch aus der Endlosschleife | : | Sobald eine Bedingung nicht mehr erfüllt ist, soll aus der Schleife
ausgebrochen werden. Eine sogenannte "Break-Anweisung" würde hier zum
Einsatz kommen. Diese ist zwingend erforderlich, damit es im Spiel zu keiner Endlosschleife kommt und das Spiel "hängen" bleibt... |
Nun, da ihr wisst, aus welchen Teilen eine For-Schleife besteht, geht es eigentlich nur noch darum, welche Funktionen des Makers zur Erstellung der genannten Teile notwendig sind (Erklärungen der einzelnen Funktionen sind angelinkt).
1. | Zähler setzen | : | Zuerst muss eine Variable ausgewählt und ihr ein Startwert
überreicht werden. Dies macht ihr mit der Funktion "Change Variable/Variable(n)
ändern", die auf der Registerkarte 1 der Ereigniskommandos zu
finden ist. |
|||||||||
2. | Die Endlosschleife | : | Direkt unter der Zählervariable folgt nun die Endlosschleife, deren
Inhalt kontinuierlich wiederholt werden soll. Eine Endlosschleife
erstellt ihr mit dem Ereigniskommando "Cycle/Zyklus (Schleife)
erstellen", zu finden auf der Registerkarte 3 der
Ereigniskommandoliste. |
|||||||||
3. | Die Bedingung | : | Direkt unter dem von euch angelegtem Code muss nun noch eine "Fork/Bedingung" angelegt werden
(die entsprechende Funktion befindet sich in der Liste der
Ereigniskommandos, auf der dritten Registerkarte), die letztlich abfragt, wie sich der Zähler
verhalten soll. Folgende Möglichkeiten habt ihr zur Abfrage von
Zählerwerten:
Wichtig ist, dass ihr einen "ELSE Case/Ansonsten-Fall" hinzufügt
(also beim Anlegen der Fork/Bedingung im entsprechendem Kästchen das
Häkchen setzen. Weil das braucht ihr im Folgendem... |
|||||||||
4. | Der zu wiederholende Code | : | Wie ihr wisst, wird in einer Fork/Bedingung zuerst der Ja-Fall
definiert, dann erfolgt die Trennung durch "ELSE-Case/Ansonsten" und
dann der Nein-Fall. Widmen wir uns nun dem Ja-Fall. Hier, im Ja-Fall der Bedingung, soll der von euch vorgesehene Code, der kontinuierlich wiederholt werden soll, angelegt werden. An dieser Stelle sei eurer Kreativität freien Lauf gelassen, da es je nach Projekt und euren Vorstellungen unterschiedlichste Dinge geben kann, die wiederholt werden sollen... |
|||||||||
5. | Den Zähler verändern | : | Direkt nach dem von euch innerhalb des Ja-Falls angelegtem Code soll nun der Zähler verändert (beispielsweise gesteigert) werden. Dies macht ihr, wie schon beim Anlegen des Zählers zuvor, mit der Funktion "Change Variable/Variable(n) ändern", die auf der Registerkarte 1 der Ereigniskommandos zu finden ist. Beachtet, dass ihr hier die selbe Variable wie die für den Zähler nehmt. Mehr ist für den Ja-Fall nicht erforderlich, da nun, nachdem der Zähler verändert wurde, ein erneuter Schleifendurchlauf vorgenommen werden würde. |
|||||||||
6. | Der Schleifenausbruch | : | Widmen wir uns nun dem Fall, dass die Bedingung einmal nicht erfüllt
sein sollte. Dann nämlich soll ja aus der Schleife ausgebrochen und mit
dem Code unterhalb der Schleife (Cycle/Zyklus) fortgefahren werden. Es
geht also nun um den Bereich direkt unterhalb des Wörtchens "ELSE-Case/Ansonsten". Hier legt ihr einfach ein Ereigniskommando namens "Break Cycle/Zyklus (Schleife) unterbrechen" an, das ihr in der Liste der Ereigniskommandos auf der dritten Registerkarte findet. |
![]() |
An diejenigen unter euch, die über Grundkenntnisse der
Programmierung verfügen: Wenn ihr den Zähler und den Ja-Fall der Bedingung leer lasst, habt ihr eine "Do-While-Schleife", die immer (!) einmal mindestens durchlaufen wird. |