Auswählproblem im Haupmenü
Übersicht

![]() |
Lord AdZBetreff: Auswählproblem im Haupmenü |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich arbeite gerade am Hauptmenü für mein Spiel, aber leider gibt es dabei ein Problem. Ich kann nähmlich im Optionsmenü die Grafikeinstellungen nicht auswählen. Weiß jemand, wo der Fehler liegt?
Code: [AUSKLAPPEN] Graphics 800,600,16,2 SetBuffer BackBuffer() Global font1 = LoadFont("Arial", 30, 1, 1, 0) Global Grafik=0 ClsColor 0,0,200 Color 128,255,0 SetFont font1 Repeat Text 400,100,"Spiel starten ",1,1 Text 400,200,"Optionen",1,1 Text 400,300,"Credits",1,1 Text 400,400,"Beenden",1,1 mausklick = MouseHit(1) If mausklick And Maus_Text_Kollision(400,100,"Spiel starten",1,1) Then Startegame () If mausklick And Maus_Text_Kollision(400,200,"Optionen",1,1) Then Optionen() If mausklick And Maus_Text_Kollision(400,300,"Credits",1,1) Then Credits () If mausklick And Maus_Text_Kollision(400,400,"Beenden",1,1) Then Ende() If mausklick And Maus_Text_Kollision(400,200,"Grafikeinstellungen:",1,1) Then Grafikeinstellungen() Flip:Cls Until KeyHit(1) End Function Maus_Text_Kollision(xPos,yPos,Text1$,AusrichtungX = 0,AusrichtungY = 0) Breite=StringWidth(Text1$) Hoehe =StringHeight(Text1$) If AusrichtungX Then xPos = xPos - Breite/2 If AusrichtungY Then yPos = yPos - Hoehe/2 If RectsOverlap(xPos,yPos,Breite,Hoehe,MouseX(),MouseY(),1,1) Then Rect xPos,yPos,Breite,Hoehe,0; Rahmen zur kontrolle Return True End If Return False End Function Function Startegame () Cls Text 400,300,"Spiel wird geladen!",1,1 Flip Delay 1000 End Function Function Optionen() Cls Text 400,200,"Grafikeinstellungen:",1,1 Text 400,250,"800X600X16",1,1 Flip WaitKey End Function Function Grafikeinstellungen() Cls Grafik=Grafik+1 If Grafik=0 Then Cls Text 400,250,"800X600X16",1,1 Graphics 800,600,16,2 Flip EndIf If Grafik=1 Then Cls Text 400,250,"1024X768X16",1,1 Graphics 1024,768,16,2 Flip EndIf If Grafik=2 Then Cls Text 400,250,"1280X1024X16",1,1 Flip EndIf If Grafik>2 Then Grafik=0 Flip End Function Function Credits () Cls Text 400,100,"Menü by Lord AdZ",1,1 Flip Delay 1000 End Function Function ende () Cls Text 400,100,"Spiel wird beendet",1,1 Text 400,130,"Bitte habe Sie einen Augenblick Geduld.....",1,1 Flip Delay 2000 End End Function |
||
![]() |
LukasBanana |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] If mausklick And Maus_Text_Kollision(400,100,"Spiel starten",1,1) Then Startegame ()
If mausklick And Maus_Text_Kollision(400,200,"Optionen",1,1) Then Optionen() If mausklick And Maus_Text_Kollision(400,300,"Credits",1,1) Then Credits () If mausklick And Maus_Text_Kollision(400,400,"Beenden",1,1) Then Ende() If mausklick And Maus_Text_Kollision(400,200,"Grafikeinstellungen:",1,1) Then Grafikeinstellungen() Wenn man am Anfang mit der Maus auf "Optionen" geht wird Optionen umrandet und "Grafikeinstellungen:" ebenfalls. "Grafikeinstellungen:" darf aber erst sichtbar sein wenn man im Optionsmenu ist. In der Funktion "Optionen()" ist auch keine "Repeat-Until"- oder "While-Wend" Schleife sondern nur das "WaitKey", natürlich kann man dann nichts auswählen. Gruß LukasBanana |
||
Mein YouTube Channel: http://www.youtube.com/user/SoftPixel
Mein Twitter Profil: https://twitter.com/LukasBanana Meine Projekte auf github.com: https://github.com/LukasBanana Meine Projekte auf bitbucket.org: https://bitbucket.org/LukasBanana |
![]() |
Lord AdZ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok, die Doppelumrandung hab ich jetzt behoben, aber ich kann die Grafikeinstellungen immer noch nicht auswählen.
Code: [AUSKLAPPEN] If mausklick And Maus_Text_Kollision(400,100,"Spiel starten",1,1) Then Startegame () If mausklick And Maus_Text_Kollision(400,200,"Optionen",1,1) Then Optionen() If mausklick And Maus_Text_Kollision(400,300,"Credits",1,1) Then Credits () If mausklick And Maus_Text_Kollision(400,400,"Beenden",1,1) Then Ende() Flip:Cls Until KeyHit(1) End Function Maus_Text_Kollision(xPos,yPos,Text1$,AusrichtungX = 0,AusrichtungY = 0) Breite=StringWidth(Text1$) Hoehe =StringHeight(Text1$) If AusrichtungX Then xPos = xPos - Breite/2 If AusrichtungY Then yPos = yPos - Hoehe/2 If RectsOverlap(xPos,yPos,Breite,Hoehe,MouseX(),MouseY(),1,1) Then Rect xPos,yPos,Breite,Hoehe,0; Rahmen zur kontrolle Return True End If Return False End Function Function Startegame () Cls Text 400,300,"Spiel wird geladen!",1,1 Flip Delay 1000 End Function Function Optionen() Cls Text 400,200,"Grafikeinstellungen:",1,1 Text 400,250,"800X600X16",1,1 If mausklick And Maus_Text_Kollision(400,200,"Grafikeinstellungen:",1,1) Then Grafikeinstellungen() Flip WaitKey End Function Function Grafikeinstellungen() Cls Grafik=Grafik+1 If Grafik=0 Then Cls Text 400,250,"800X600X16",1,1 Graphics 800,600,16,2 Flip EndIf If Grafik=1 Then Cls Text 400,250,"1024X768X16",1,1 Graphics 1024,768,16,2 Flip EndIf If Grafik=2 Then Cls Text 400,250,"1280X1024X16",1,1 Flip EndIf If Grafik>2 Then Grafik=0 Flip End Function |
||
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Cls
Text 400,200,"Grafikeinstellungen:",1,1 Text 400,250,"800X600X16",1,1 If mausklick And Maus_Text_Kollision(400,200,"Grafikeinstellungen:",1,1) Then Grafikeinstellungen() Flip WaitKey der user soll also innerhalb vin wenugen millisekunden über das ding hovern und klicken interessant..... eine schleife währe hier zu empfehlen etwa mit dem Code: [AUSKLAPPEN] REPEAT;<-------
Cls Text 400,200,"Grafikeinstellungen:",1,1 Text 400,250,"800X600X16",1,1 If mausklick And Maus_Text_Kollision(400,200,"Grafikeinstellungen:",1,1) Then Grafikeinstellungen() Flip UNTIL Getkey()<>0;NIX waitkey das wartet auch auf ne taste aber es führt aus was zwischen repeat und until steht |
||
![]() |
Lord AdZ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke für dein Beispiel FTC, ich kann die Grafikeinstellungen auswählen, aber es passiert nichts, damit meine ich, dass die Grafik sich nicht verändert.
Wo hab ich jetzt wieder Mist gebaut? Code: [AUSKLAPPEN] Function Grafikeinstellungen() Cls Grafik=Grafik+1 If Grafik=0 Then Cls Text 400,250,"800X600X16",1,1 Graphics 800,600,16,2 Flip EndIf If Grafik=1 Then Cls Text 400,250,"1024X768X16",1,1 Graphics 1024,768,16,2 Flip EndIf If Grafik=2 Then Cls Text 400,250,"1280X1024X16",1,1 Graphics 1280,1024,16,2 Flip EndIf If Grafik>2 Then Grafik=0 Flip End Function |
||
![]() |
LukasBanana |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also, volgender Code sollte funktionieren, aber das "LoadFont", und grundsätzlich alles was geladen wird muss bei einer neuen Bildschirmeinstellung neu geladen werden:
Code: [AUSKLAPPEN] Graphics 800,600,16,2 SetBuffer BackBuffer() Global font1 = LoadFont("Arial", 30, 1, 1, 0) Global Grafik=0, mausklick ClsColor 0,0,200 Color 128,255,0 SetFont font1 Repeat Text 400,100,"Spiel starten ",1,1 Text 400,200,"Optionen",1,1 Text 400,300,"Credits",1,1 Text 400,400,"Beenden",1,1 mausklick = MouseHit(1) If mausklick And Maus_Text_Kollision(400,100,"Spiel starten",1,1) Then Startegame () If mausklick And Maus_Text_Kollision(400,200,"Optionen",1,1) Then Optionen() If mausklick And Maus_Text_Kollision(400,300,"Credits",1,1) Then Credits () If mausklick And Maus_Text_Kollision(400,400,"Beenden",1,1) Then Ende() Flip:Cls Until KeyHit(1) End Function Maus_Text_Kollision(xPos,yPos,Text1$,AusrichtungX = 0,AusrichtungY = 0) Breite=StringWidth(Text1$) Hoehe =StringHeight(Text1$) If AusrichtungX Then xPos = xPos - Breite/2 If AusrichtungY Then yPos = yPos - Hoehe/2 If RectsOverlap(xPos,yPos,Breite,Hoehe,MouseX(),MouseY(),1,1) Then Rect xPos,yPos,Breite,Hoehe,0; Rahmen zur kontrolle Return True End If Return False End Function Function Startegame () Cls Text 400,300,"Spiel wird geladen!",1,1 Flip Delay 1000 End Function Function Optionen() Cls Text 400,200,"Grafikeinstellungen:",1,1 Text 400,250,"800X600X16",1,1 If mausklick And Maus_Text_Kollision(400,200,"Grafikeinstellungen:",1,1) Repeat;<------- mausklick = MouseHit(1) Cls Text 400,200,"Grafikeinstellungen:",1,1 Text 400,250,"800X600X16",1,1 If mausklick And Maus_Text_Kollision(400,200,"Grafikeinstellungen:",1,1) Then Grafikeinstellungen() Flip Until mausklick;NIX waitkey das wartet auch auf ne taste aber es führt aus was zwischen repeat und until steht Cls EndIf Flip End Function Function Grafikeinstellungen() Grafik=Grafik+1 If Grafik=0 Then Cls Text 400,250,"800X600X16",1,1 Graphics 800,600,16,2 Flip EndIf If Grafik=1 Then Cls Text 400,250,"1024X768X16",1,1 Graphics 1024,768,16,2 Flip EndIf If Grafik=2 Then Cls Text 400,250,"1280X1024X16",1,1 Flip EndIf If Grafik>2 Then Grafik=0 Flip End Function Function Credits () Cls Text 400,100,"Menü by Lord AdZ",1,1 Flip Delay 1000 End Function Function ende () Cls Text 400,100,"Spiel wird beendet",1,1 Text 400,130,"Bitte habe Sie einen Augenblick Geduld.....",1,1 Flip Delay 2000 End End Function Gruß LukasBanana PS: If Grafik = 0 ; ... If Grafik = 1 , ne ne ne, verwände mal Select Code: [AUSKLAPPEN] Select Grafik Case 0 ; Fall 0 ; ... Case 1 ; Fall 1 ; ... Default ; Andernfalls ; ... End Select |
||
Mein YouTube Channel: http://www.youtube.com/user/SoftPixel
Mein Twitter Profil: https://twitter.com/LukasBanana Meine Projekte auf github.com: https://github.com/LukasBanana Meine Projekte auf bitbucket.org: https://bitbucket.org/LukasBanana |
![]() |
Lord AdZ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sorry das ich so blöd bin, aber der Debugger meldet sich, dass ich "Case" ohne "Select" habe. Dabei hab ichs ganz sicher:
Code: [AUSKLAPPEN] Function Grafikeinstellungen() Grafik=Grafik+1 Select Grafik ; da hab ich doch das Select Case 1 Grafik=0 Cls Text 400,250,"800X600X16",1,1 Graphics 800,600,16,2 SetBuffer BackBuffer() ClsColor 0,0,200 Color 128,255,0 SetFont font1 Repeat Flip Case 2 Grafik=1 Cls Text 400,250,"1024X768X16",1,1 Graphics 1024,768,16,2 SetBuffer BackBuffer() ClsColor 0,0,200 Color 128,255,0 SetFont font1 Repeat Flip Case 3 Grafik=2 Cls Text 400,250,"1280X1024X16",1,1 Flip Default Print "Irgendwas klappt nicht" End Select If Grafik>2 Then Grafik=0 Flip End Function Das mit dem If/Endif hab ich auch ausprobiert, es klappt aber auch nicht. |
||
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
setz mal die "grafik=..." mit in die nächste zeile | ||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Beim überfliegen hab ich zweimal repeat gesehen ohne ein until bzw Forever.
das geht so natürlich nicht. |
||
[BB2D | BB3D | BB+]
|
![]() |
Lord AdZ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Rallimen, du hast recht, jetzt geht das Hauptmenü endlich.
Danke an euch alle! |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group