gwX Forum
Würden Sie gerne auf diese Nachricht reagieren? Erstellen Sie einen Account in wenigen Klicks oder loggen Sie sich ein, um fortzufahren.

Menüs anlegen und verwalten

2 verfasser

Nach unten

Menüs anlegen und verwalten Empty Menüs anlegen und verwalten

Beitrag  Eddy Sa 6 Jun 2009 - 22:55

Dank des (noch im PreAlpha-befindlichem) neuen 2D-Menüsystem können zukünftig auch komplexe Menüs außerhalb von Gebäudeinhaltssteuerung und Kaufmenü per Script erstellt werden. Das System arbeitet nach dem CR-Vorbild (CreateMenu und AddMenuItem).

Es gibt zwei Modi für das advmenu (ID des neuen Menüs):
- 1 / 101: Aneinanderreihung der menuitem-Bilder bzw. übergebender Texturen in 32*32
- 1 / 102: CR-like-Contextmenü

Zur Initialisierung eines flexiblen neuen Menüs reicht folgender Code:
Code:
var a;
 a := createobject(getid("advmenu"));
 intern2(a,o,102,"Testmenue",1,0); // Menü initialisieren - Mit Beschreibungsbox!
So. A ist hierbei die neue Instanz des Menüobjektes. Die auf createobject folgende Zeile ist schon komplizierter. a steht für das Menüobjekt, o ist das Objekt, von dessen das Menü die Steuerung beziehen soll (Im Normalfall der Clonk eines Spielers). 102 ist die Modi-ID + 100 (siehe oben). In diesem Fall wird ein Contextmenü erstellt. Darauf folgt der Menütitel. Der vletzte Parameter gibt an, ob eine zusätzliche Beschreibungbox für gerade ausgewählte Items auf der linken Seite des Screens angezeigt werden soll. In diesem Fall: ja. Als letzter Parameter wird ein 0 / 1 - Wert erwartet, der angibt, ob das Menü schließbar sein soll.

Zum Hinzufügen eines neuen Menüeintrags:
Code:
intern2(a,1,intern(getid("flagge"),getid("menuitem")),"Moep!","Ein Menüeintrag!",@cback)
1 steht hierbei für die zu nutzende Aktion, 1 = AddMenuItem. Darauf folgt die zu nutzende Grafik, in diesem Fall wird mittels eines intern-Scripts die Menügrafik der Flagge abgefragt. Darauf folgen der Titel für das Item und die Beschreibung. Der letzte Parameter ist ein Zeiger auf die Methode, die ausgeführt werden soll, wenn das Item angewählt wird. Diese muss nach folgendem Schema aufgebaut sein: cdecl funktion(o,men), wobei o ein Zeiger auf das MenuItem mit seinen ganzen lokalen Variablen ist (siehe advmenuitem/script). Mit GetParent(o) kommt man auf das auch selbst übergebene Menü.

Weitere Actions (intern2(o,XXX))
2: Löscht alle MenuItems. Nach Möglichkeit sollte ein Menü aber immer einen Eintrag enthalten, also danach gleich wieder einen bekommen.
3: Löscht alle bisherigen MenuItems und überträgt mittels FindDef alle kaufbaren Objekte in die MenuItem-Struktur.
4: Schließt das Menü.


Zuletzt von Eddy am Mi 10 Jun 2009 - 15:42 bearbeitet; insgesamt 1-mal bearbeitet

Eddy

Anzahl der Beiträge : 509
Anmeldedatum : 14.01.09
Alter : 30

http://systems.bitfarmclan.de

Nach oben Nach unten

Menüs anlegen und verwalten Empty Re: Menüs anlegen und verwalten

Beitrag  Carli So 7 Jun 2009 - 17:51

Gute Arbeit Eddy.

Carli
Admin

Anzahl der Beiträge : 1001
Anmeldedatum : 02.01.09

Nach oben Nach unten

Menüs anlegen und verwalten Empty Re: Menüs anlegen und verwalten

Beitrag  Eddy So 7 Jun 2009 - 20:56

Thx Smile. Ich rechne damit das der Contextmodus morgen fertig ist (-> ICQ).

Eddy

Anzahl der Beiträge : 509
Anmeldedatum : 14.01.09
Alter : 30

http://systems.bitfarmclan.de

Nach oben Nach unten

Menüs anlegen und verwalten Empty Re: Menüs anlegen und verwalten

Beitrag  Gesponserte Inhalte


Gesponserte Inhalte


Nach oben Nach unten

Nach oben


 
Befugnisse in diesem Forum
Sie können in diesem Forum nicht antworten