Quadratisches Menü
___________________________________________________________________________
___________________________________________________________________________
Bei meinen Anfängen hier im Forum hatte ich selbst das Problem, dass ich nicht wusste wie solch ein Quadratisches Menü (siehe oben) entstehen soll.
Dieses Tutorial/Example soll einen Einblick in meinem Lösungsweg geben, da er meiner Meinung nach der effektivste ist.
Die gesamte gmk ist dokumentiert.
Download (Example)
Scripte
GML-Quellcode
- if (men==1){ // wir beziehen uns jetzt nur auf das erste Menü
- //////////////////////////////////////////////
- //////////////////////////////////////////////
- /////////////////Abfrage der Position:////////
- //////////////////////////////////////////////
- //////////////////////////////////////////////
- switch (xpos){
- case 1: switch (ypos){ // bei X koordinate 1
- case 1: pos=1; break; // und y koordinate 1 ist die position des zeigers 1 (oben links)
- case 2: pos=3; break; // oder y koordinate 2 ist die position des zeigers 3 (unten links)
- }
- break;
- case 2: switch (ypos){ //bei x koordinate 2
- case 1: pos=2; break; //und y koordinate 1 ist die position des zeigers 2 (oben rechts)
- case 2: pos=4; break; //oder y koordinate 2 ist die position des zeigers 4 (unten rechts)
- }
- break;
- }
- switch (ypos){
- case 1: switch (xpos){ //[...]
- case 1: pos=1; break;
- case 2: pos=2; break;
- }
- break;
- case 2: switch (xpos){
- case 1: pos=3; break;
- case 2: pos=4; break;
- }
- break;
- }
GML-Quellcode
- //////////////////////////////////////////////
- //////////////////////////////////////////////
- /////////////////Tastendruck//////////////////
- //////////////////////////////////////////////
- //////////////////////////////////////////////
- if (keyboard_check(vk_left)){ //man drück nach links,
- if (xpos>1 && t0==0){ //wenn nach links Platz ist,
- xpos-=1; t0=1; alarm[2]=4;sound_play(sound0);//wird die Zeigerposition X um 1 weniger
- }
- } //Unnötige Anmerkung: für 2x2 Felder geht es auch einfacher, aber diese Methode ist auch mit mehr Zahlen kompatibel ;)
- if (keyboard_check(vk_right)){ //wenn man nach rechts drückt,
- if (xpos<2 && t0==0){ //wird abgefragt ob nach rechts noch platz ist,
- xpos+=1; t0=1; alarm[2]=4;sound_play(sound0);//und die zeigerposition x wird um 1 erhöht.
- }
- }
- if (keyboard_check(vk_down)){ //man sollte das Prinzip nun verstanden haben ;)
- if (ypos<2 && t0==0){
- ypos+=1; t0=1; alarm[2]=4;sound_play(sound0);
- }
- }
- if (keyboard_check(vk_up)){
- if (ypos>1 && t0==0){
- ypos-=1; t0=1; alarm[2]=4;sound_play(sound0);
- }
- }
- if (keyboard_check(ord('X'))){
- if (pos==1 && t==0) {men=2;sound_play(sound0); alarm[0]=1;}
- if (pos==4 && t==0) {game_end();}
- }
- }
Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von domis4 ()