Go Down

Topic: Multi dim. Menü (Read 708 times) previous topic - next topic

Jomelo

Jun 08, 2009, 05:16 pm Last Edit: Jun 08, 2009, 09:38 pm by Jomelo Reason: 1
Hi zusammen,

ich versuch gerade für ein kleines Spiel eine Menü zu basteln.
Diese soll maximal 6 Ebenen Tief sein.

Meine überlegung ist im Moment wie ich am Besten den Array austellen kann. Ich probiers gerade mit:

Code: [Select]

menu[0][0][0][0] = "Spiele";
 menu[0][1][0][0] = "0-6";
   menu[0][1][1][0] = "DO";
   menu[0][1][2][0] = "games_set";
   menu[0][1][3][0] = "6";
 menu[0][2][0][0] = "0-10";
   menu[0][2][1][0] = "DO";
   menu[0][2][2][0] = "games_set";
   menu[0][2][3][0] = "10";
 menu[0][3][0][0] = "0-X";
   menu[0][3][1][0] = "DO";
   menu[0][3][2][0] = "games_set";
   menu[0][3][3][0] = "X";
     menu[0][3][3][1] = "einlesen";      
menu[1][0][0][0] = "Kontest";
menu[2][0][0][0] = "Einstellungen";
menu[3][0][0][0] = "Standby";


Aber das scheint mir keine gute lösung zu sein, da ich viel zu viel Speicherplat reserviere.

Habt ihr das schonmal probiert ?
Oder doch lieber nicht variabel und alles mit  if und switch anweisungen ?

Variabel wäre mir lieber für die "Erweiterbarkeit" und Pflege.

Eine andere Idee war wie folgt, das funktioniert auch, aber bei 6 Ebenen werde ich sicher den überblick verlieren:

Code: [Select]

char menu_main[9][40]={
 "Spiele",               // games
 "Wettbewerb",           // contest
 "Einstellungen",        // settings
 "Standby"               // standby
};

char menu_sub_1[9][9][40] = {
 {
   {"0-6"},
   {"0-10"},
   {"0-XX"},
   {"zurueck"},
   {'S'}
 },
 {
   {"X Tore in X Minuten"},
   {"schnellster Schuss in X Minuten"},
   {"zurueck"},
   {'S'}
 },
 {
   {"Hardware"},
   {"Software"},
   {"Beleuchtung"},
   {'S'}
 },
 {
   {"DO"},
   {"do_standby"},
   {'S'}
 }
};



Gruß

Jomelo

bohne

Menus mit Arrays fressen unnütz viel Speicher. Besser, Du schreibst Dir ein struct mit einem string für den Namen des Menupunkts und einem FunctionPointer, der auf die Funktion verweist, die aufgerufen werden soll, wenn der Menupunkt ausgewählt wurde. Dann erstellst Du eine verkettete Liste von solchen struct "Objekten" und fertig ist Dein Menu...

Ist ungefähr klar, wie das geht?

Jomelo

Jap,  verkettete Listen hatte ich letztes Semester im Studium.

Dann muss ich damit halt nur nen bischen rum "spielen" ;-)

Poldi

Hallo zusammen!

Da mich das Thema auch interessiert habe ich mal die Suche benutzt und einen Beitrag zum Thema Menüs gefunden. Im aktuell letzten Post auf folgender Seite kann man eine Library herunterladen:

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1242443739/0#5

Ich werde es bei Gelegenheit mal testen. Müsste zuhause noch ein Display rumliegen haben...

Gruß
Poldi

Go Up