PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Scrolling Menü Script



DNKpp
06.04.2010, 19:16
So,

nachdem ich gestern mal den Maker wieder rausgekramt habe, und ein bisschen dran rumgewerkelt habe, ist sogar mal was anständiges bei heraus gekommen.
Ich verwende hierfür lediglich den NEUSTEN PPP und den Destiny Patch und natürlich den guten alten RM2k^^

Ich habe versucht es so einfach wie möglich zu halten. Wer sich ein bisschen mit Programmiersprachen wie C++ und Konsorten beschäftigt hat wird die Technische Idee dahinter schnell entdecken.
Die Rede ist von "Instanzierung". Ja, ich weiß, der Maker kann sowas nicht, aber ich habe versucht das in etwa diesem Stil umzusetzen. Ich werde jetzt auch in einfachen Worten versuchen zu erklären,
was ich damit in etwa meine.

Mich hat es immer genervt Stundenlang die Variabeln für ein neues Menü, Objekt oder what ever zu ändern. Das wollte ich umgehen, indem ich im KOMPLETTEN CODE auf keine expliziet vorgegebenen
Variabeln zugreife, sondern praktisch nur den Abstand (also eine Variabel hat die ID 5 die nächste dann die ID 7, usw...) bestimme. Das erlaubt es einem durch das ändern EINER einzigen Variabel einem Mit Programmiersprachen hat man die Möglichkeit Variabeln zu erstellen, was letztendlich diese Technik unmöglich macht, ich habe aber versucht es so zu machen, das man wenigstens eine gewisse Anzahl an Menüs "erstellen" bzw gleichzeitig aufrufen kann.
Menü komplett neue Variabeln zu verschaffen. Aber das ganze hat natürlich auch einen kleinen Haken. Wer sich nur den Code komplett angucken möchte hat leider das Problem das er NICHTS verstehen wird^^,
nichtmal ich blicke da komplett durch. Aus diesem Grund habe ich noch ein CE übrig gelassen, das einem wenigstens einen kleinen Einblick gewährt, was der Code eigentlich so macht.
Dieses CE heißt "Menü Bewegung alt o" "o" steht für oben^^.

Ich erkläre jetzt hier die einzelnen CE´s und ihr Funktionsweisen.

- Tastenabfrage:

Ich denke jeder kennt ein einfaches Tastenabfrage Script, ist nichts anderes. Wenn ESC gedrückt wird, wird ein Menü aufgerufen, die Tasten oben
und unten scrollen im Menü mit dem momentanen Fokus hoch und runter und die Tasten rechts und Links switchen zwischen den Menüs hin und her (grafisch NICHT dargestellt). Enter zum bestätigen des
momentanen Menüpunkts.

- Menü Initialisierung

Das ist praktisch der Aufruf des ganzen. Dieses CE bekommt die Startvariabeln geliefert und beginnt dann daraus das Menü zu erstellen. Hier empfielt es sich NICHTS zu verändern. Alle wichtigen Dinge wie Bilder
Aufruf und degleichen sind ausgelagert. Ihr braucht hier NICHTS zu ändern.

- Menü Bewegung Oben/Unten

Die Bewegung die das Menü macht (oben/unten). Hier gilt das gleiche wie bei der Menü Initialisierung. NICHTS verändern.

- Menü Punkte

Das ist das was aufgerufen wird, wenn man "Enter" drückt. Bisher würde das Menü nur EINE Liste mit Menüpunkten abfragen, das lässt sich aber leicht durch die Variabel "Menü Fokus" abfragen, welches jetzt
letztendlich bedient wird.

- Menü Bewegung alt o

Ist wie gesagt nur zum Anschauen da, erfüllt keinen Zweck mehr, kann gelöscht werden.


- Bilder Auswahl XXX

Das ist die Auswahl der Hintergründe und Ränder und Menüpunkte. Dort einfach den Rand oder what ever für den jeweiligen Index eintragen.

- Menü Varis Init

Jetzt kommen wir zum Kern des ganzen. Hier findet die "Initialisierung" des 1. Menüs statt. Alle Variabel, die etwas zu sagen haben sind eigentlich Dokumentiert, trotzdem hier nochmal seperat und Ordentlich
aufgelistet.

Die 1. Variabel gibt den Speicherort des Menüs wieder. Ich würde der einfachkeit wegen einen Variabel Block (also 20 Variabeln) dafür verwenden. Man braucht zwar im Endeffekt nur 15 allerdings hat man so
einen besseren Überblick.

Die 2. und 3. Variabel gibt die Anzeigeposition des Menüs wieder, wobei die 2 Koordinaten sich auf den Mittelpunkt beziehen.

Variabel 4 gibt die Anzahl der Menüpunkte an, die auf dem Bildschirm zu sehen sein sollen. Dabei sind die beiden Menüpunkte UNTER dem Rand, also die, die eigentlich nicht sichtbar sind, mitzurechnen.

Variabel 5 gibt den UNTERSTEN Picturelayer an, der verwendet werden soll.
Sieht in etwa so aus.

-Hintergrund
-Wert von Variabel 4
-Rand

In meinem Fall sind das 9 Layer. 1 durch den Hintergrund, einer durch den Rand und 7 für die Menüpunkte.

Variabel 6 gibt an, wie viele Menüpunkte das Menü INSGESAMT enthalten soll. Diese Variabel wird für den Bilderaufrauf des PPP gebraucht.

Variabel 7 ist für die Höhe der einzelnen Menüpunkte zuständig (in meinem Fall 16 Pixel)

Variabl 8 ist für die Scrollgeschwindigkeit zuständig. Der Wert 1 entspricht 0,1sec. Sollte das bei euch nicht so funktionieren müsst ihr euch ein wenig gedulden, bis sich Cherry bereit erklärt WAS ihr machen
müsst, damit es funktioniert, oder einfach mal den neuen PPP ausprobieren^^

Variabel 9 gibt an, welchen Index das Menü hat. Jeder Index sollte nur einmal vergeben werden, da das entscheidend für die Auswahl der Ränder und Menüpunkte ist.

Das wars dann auch schon an interessanten Variabeln in diesem Event. Weiter zum nächsten.

- Menü Close

Dieses Event schließt das momentane Menü. Man muss es für jedes Menü das man hat kopieren, und muss nur die 1. Variabel ändern, da sie wieder die Speicher Position bzw die ID der Variabeln angiebt.
Die Close Funktion kann beliebig erweitert werden. Sie enthält nur das Grundgerüst.

Das CE Sub und Sub CLose sind nur eine Kopie vom vorherigen und euch zu zeigen wie einfach das ist, ein neues Menü zu erstellen :)



So, das wars dann auch schon. Mal sehen vll fallen mir noch ein paar Änderungen ein. Wer Bugs findet darf sie natürlich gerne posten^^

Ansonsten hier (http://rapidshare.com/files/372737632/Scroll_Men___Script_V._1.rar
) der Downloadlink.
Würde mich über Kritik freuen :)

PS: Die rote Farbe kennzeichnet das Event das NICHT verändert werden darf, die grüne, das verändert werden kann und gelb, naja, das Event ist eh egal^^

EDIT: Hier mal ein paar Screenshots zum besseren verständnis

http://i43.tinypic.com/2lmkhza.png
http://i39.tinypic.com/avkilg.png
http://i39.tinypic.com/fdvlgi.png

Da das anscheinend noch nicht ganz klar wurde, wie man sich sein eigenes Menü baut hier nochmal eine expliziete Anleitung:

Man kopiert sich die Events "Menü Varis Init" UND "Menü Close" in ein freies CE und ändert die dort beschriebenen Variabeln nach seinen Vostellungen.
Danach noch die beiden CE´s im "Tastenabfrage" Event callen. So damit ist nun ein neues Menü auf dem Bildschirm zu sehen^^