Tastenmenü probleme
Übersicht

![]() |
KillafriedaBetreff: Tastenmenü probleme |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo allen,
ich habe eine Frage und zwar habe ich heute mal angefangen mit einem kleinen Menü. Es ist aufgebaut aus 5 anwählbaren Einträgen u.a. Start, Einstellungen, Levelauswahl, Hilfe, Ende usw ich habe für jeden Eintrag eine Taste von 1-5 gegeben als beispiel, Start hat Taste 1. Meine Frage ist nun, ich werde nun gefragt welche Auswahl ich machen möchte, ich gebe Zahl 1 für Start ein um nun aber nach Start zugelangen (was ja nur passieren kann wenn ich Taste 1 drücke) wie muß ich das proggen ? if then ist mir schon klar aber wie mach ich das, dass das programm direkt zum Start hingeht ? Ich weis noch aus C-64 Zeiten das es früher bei Basic befehlen zeilennummern (1,2,3 usw..) gab also z.b. If x=1 then goto 20 womit ich dann zeile 20 ansteuer wo der nächste Befehl ist z.b... aber wie geht das mit B3D, hier kann ich ja keine zeilennummer ansteuern ??? Ich hab nun schon hier einiges durchgeschaut aber meiner Meinung nach nix gefunden, hab paar Tutorial angeschaut wo IF Then auch beschrieben wird aber wie man nun dahingelangt zum Befehl den man gegeben hat konnte ich nicht rauslesen, vllt. denke ich auch zu umständlich möglich. Vielleicht kann mir das mal jemand erklären wie ichs machen muß. Danke im Vorraus KF |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
einfache lösung:
Code: [AUSKLAPPEN] If Taste=12 then
Spielen ElseIf Taste= 13 Then Ende Elseif... blabla Endif Function Spielen() vorblabla Repeat hauptblabla Flip Until Keyhit(1) End Function Function ende() schlussblabla End End Function Function Blabla() code was auch immer End function bessere Lösung Code: [AUSKLAPPEN] Repeat
cls taste=... ; tastenabfrage Select SpielMode Case 0 Select Taste Case 12 SpielMode= 1 case 13 SpielMode=0 case blablataste SpielMode= Blablamode End select Case 1 Select Taste case 13 SpielMode=0 Case 55 spielerX=spielerX-1 case 56 spielerX=spielerX+1 case blablataste Blabla.... End select Case 2 End select ; ScreenZeichnen Select SpielMode Case 0 ZeichneStartMenue Case 1 ZeichneSpielfeld Case 2 End select Flip Until KeyHit(1) Function ZeichneStartMenue() hier alles malen was zum Menü gehört End Function Function ZeichneSpielfeld() hier alles malen was beim Spielen zu sehen sein soll End Function der Vorteil der "besseren" Lösung ist, das Das Programm die gesamte Zeit in der oberen Hauptschleife bleibt. Dort wird je nach Spielmode in die verschiedenen Malroutinen oder Abfrageroutinen verzweigt. du steuerst dies über die Variable SpielMode. |
||
- Zuletzt bearbeitet von Midimaster am Mo, Dez 21, 2009 14:55, insgesamt 2-mal bearbeitet
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ach zu goto![]() Aber nimm lieber Functions, viel übersichtlicher ![]() Code: [AUSKLAPPEN] if 1 then goto eins
... ... .eins mfg |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
![]() |
Killafrieda |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke dir, da werd ich gleich mal rumprobieren ![]() |
||
![]() |
JamaginBetreff: menusteuerung |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kannst auch SELECT...CASE...END SELECT Konstruktor verwenden!
lg. Jamagin ![]() NB: Online Hilfe lesen hilft auch weiter...! |
||
Bevor du etwas neues beginnst, erledige das alte |
![]() |
Killafrieda |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ Midimaster
ich bekomme immer ein "Expecting End of Line" oder ein Expecting Endif.. habe dein erstes beispiel benutzt.. Woran kann das liegen ? Edit : Ok ich habe rausgefunden woran das lag und zwar hatte ich in einem Wort ein ä drinne, hatte das wort dann in ein anderes umgeschrieben und keine Fehlermeldung mehr erhalten.. Mit deinem zweiten Beispiel komm ich nicht zurecht das ist mir momentan zuviel code ![]() @ zu den anderen Posts, danke Euch, ich werde es nach und nach ausprobieren weil sonst komm ich durcheinander ![]() Danke erstmal ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group