Da, wo ich mir Comments zum Abtrennen setzen würde (á la "|>------...-<|") lasse ich hier Leerzeilen.
2. Common Event: "Hauptmenü"
Auto-Start; Startbedingung: Switch [0002:Menü an] = ON
Code:
<>Set Variable [0001:Tastenabfrage 1] set 0
<>Set Variable [0002:Menüposition 1] set 1
<>Show Picture: (???)
<>Cycle
<>Tastenabfrage (Enter, Esc, die Pfeiltasten die man drücken können soll. Ich gehe mal von hoch und runter aus.)
<>If Variable [0001:Tastenabfrage 1] = 1
<>Play Sound: (Sound der beim drücken der Pfeiltasten abgespielt werden soll)
<>If Variable [0002:Menüposition 1] = 1
<>Set Variable [0002:Menüposition 1] set 2
:ELSE CASE
<>Set Variable [0002:Menüposition 1] - 1
:END CASE
:END CASE
<>If Variable [0001:Tastenabfrage 1] = 4
<>Play Sound: (Sound der beim drücken der Pfeiltasten abgespielt werden soll)
<>If Variable [0002:Menüposition 1] = 2
<>Set Variable [0002:Menüposition 1] set 1
:ELSE CASE
<>Set Variable [0002:Menüposition 1] + 1
:END CASE
:END CASE
<>If Variable [0001:Tastenabfrage 1] = 5
<>Play Sound: (Sound der beim drücken von Enter abgespielt werden soll)
<>If Variable [0002:Menüposition 1] = 1
<>Set Switch [0003: Standart-Menü an] set ON
<>Break Cycle
:END CASE
<>If Variable [0002:Menüposition 1] = 2
<>Call Event: [Substanz-Menü]
:END CASE
:END CASE
<>If Variable [0001:Tastenabfrage 1] = 6
<>Play Sound: (Sound der beim drücken von Esc abgespielt werden soll)
<>Break Cycle
:END CASE
<>If Variable [0002:Menüposition 1] = 1
<>Move Picture (??) -> (xxx,yyy) (Koordinaten vom ersten Auswahlfeld)
:END CASE
<>If Variable [0002:Menüposition 1] = 2
<>Move Picture (??) -> (xxx,yyy) (Koordinaten vom zweiten Auswahlfeld)
:END CASE
:END CYCLE
<>Erase Picture (???)
<>If Switch [0003: Standart-Menü an] = ON
<>Call Main Menu
:END CASE
<>Set Switch [0001:Menü erlaubt] set ON
<>Set Switch [0002:Menü an] set OFF
Puh. Viel Code, was?
Zu aller erst setzen wir wieder die Tastenvariable auf Null. Dann kommt die Variable, die sagt, wo sich unser Cursor gerade befindet. Da er normalerweise auf dem ersten Feld sein soll, setzen wir die Variable auf Eins.
Bei dem Show Picture-Befehl lässt du deine ganzen Pictures so anzeigen wie du willst. Wie genau die Werte sein müssen kommt auf deine Bilder an, aber da hilft eh meistens nur rumprobieren. Mit der Zeit bekommt man ein Gefühl dafür.
Wichtig ist, dass der Cursor so platziert wird, dass er auf dem ERSTEN Platz ist. Sonst gibt das später Probleme.
Jetzt geht's ans Eingemachte: Ein "Cycle" (Oder auch "Schleife", "Loop", je nach Übersetzung) ist ne Endlosschleife. Alles, was du da reinpackst, wiederholt der Maker so lange, bis irgendwo der Befehl "Break Cycle" auftaucht - dann springt der Maker direkt unter das Dings. Das Teil simuliert sozusagen einen Paralleln Prozess (oder einen Auto-Start, je nach dem). Damit können wir uns viele Common Events ersparen, die wir sonst extra machen müssten.
Dann kommt die altbekannte Tastenabfrage; auch hier machst du am besten ein Häkchen bei "Wait until Key hit".
JETZT wirds lustig. Je nachdem, welche Taste der Spieler drückt, entscheidet der Maker jetzt was zu tun ist. Drückst du "hoch" (= 1), spielt der Maker ein Geräusch und schaut, wo der Cursor gerade ist (anhand dieser Variable [0002]). Ist der nämlich eh schon ganz oben, kann er ja schlecht hoch - und wird ans Ende gesetzt. Da wir hier nur zwei Felder haben ist das hier die Zwei. Allgemein gesagt: Hier setzt die maximale Zahl der Auswahlfelder ein.
Ist der Cursor nicht ganz oben, rutscht er eine Stelle hoch. Stell dir das Ganze wie durchunumeriert vor:
1.
2.
3.
...
Wenn der Cursor auf zwei steht und du hoch willst, musst da ja nur Minus Eins rechnen, richtig? 2-1=1. Bei Drei auf Zwei: 3-1=2. Usw.
Danach kommt das selbe nur andersrum, mit runter statt rauf. Ist eigentlich das selbe, nur eben wird hier abgefragt, ob der Cursor ganz unten (=maximale Feldanzahl) ist. Wenn ja, kommt er auf Platz Eins. Wenn nicht, wird Plus Eins auf der Liste gerechnet.
Hier kommt der wichtige Teil: Dass auch was passiert, wenn du Enter drückst. Nun, wird Enter gedrückt, schaut der Maker jetzt wo der Cursor gerade ist, und handelt entsprechend - was er machen soll ist Situations abhängig.
An erste Stelle in der Liste habe ich das Standart-Menü gesetzt. Hier wird jetzt ERST alles geschlossen und DANN das Menü aufgerufen. Da wird am Ende eben abgefragt, ob der Switch #3 an oder aus ist. Ich finds schöner so, ersetzt du den Break Cyce und den Switch gleich mit dem Aufrufen des Menüs, bist du eben wenn du das Standart-Menü verlässt immer noch im Zusatzmenü.
Ist der Cursor auf Platz 2 (Hier das Substanz-Feld) wird das nächste Common Event aufgerufen - das wir aber noch nicht erstellt haben. Sonst passiert hier nichts.
Dann kommt der Punkt der ermöglicht, wieder aus dem Menü raus zu kommen: Die Esc-Taste wird abgefragt und der Cycle entsprechend beendet.
Am Ende vom Cycle verschiebst du deinen Cursor auf die Stelle, wo das erste Auswahlfeld ist. Wie schnell bleibt dir überlassen, ich nehme normalerweise 0,2. Vorraussetzung ist, dass du den Cursor oben bereits hast anzeigen lassen.
Bei Erase Picture am Ende löscht du alle Bilder die gerade so angezeigt werden fürs Menü und rufst das Standart-Menü bei Bedarf auf.
Dann werden noch die Switches aktualisiert, damit das jetzige Event beendet und das Aufrufen des Zusatz-Menüs wieder ermöglicht wird.
3. Common Event: "Substanz-Menü"
Call Event
Hier genau das selbe wie zuvor - bloß eben jetzt auf deine aktuellen Pictures, etc. übertragen. Switches brauchst du hier nicht an- oder auszuschalten, da das hier ja zum einen Ein Event ohne Startbedingung ist und du zum anderen a Ende eh wieder im Hauptmenü-Event landest.
Der Befehl "Call Event" kopiert nämlich sozusagen den Code eines Events an die Stelle, wo du es callst.
Mit Substanzen, etc. kenne ich mich nicht aus, daher kann ich dir den teil nicht erklären, aber wenn du erstmal mit Variablen, Pictures usw. zurechtkommst bekommst du das auch mit etwas Übung selbst hin. ^^
Hoffe du hast alles verstanden~ :3