Zurück im Menü?
Übersicht

black_threatBetreff: Zurück im Menü? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also hab jetzt ein menü geproggt, und im untermenü gibt es einen zurück button und wie kann man jetzt machen das man ins hauptmenü zurück kommt?
black_threat |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
kommt drauf an wie du aus deinem hauptmenue rausspringst!
Hoffendlich nicht mit GOTO.... Hauptschleife...... Menue if mouseklick auf button spiel dann Spiel() ; springt zur Function Hauptschleife.....ende .... .... Function Spiel() Spielcode if mouse auf zurück Button then return ;return springt wieder in die Hauptschleife direckt nach Spiel() end function das gleiche gilt für Sprungadressen mit Gosub ist jetzt aber nur Pseudocode , hoffe aber das es verständlich ist |
||
[BB2D | BB3D | BB+]
|
black_threat |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
da ich etwas begriffstützig bin nochmal mal code:
Code: [AUSKLAPPEN] Graphics 1024,768,32,1
SetBuffer BackBuffer() button=LoadImage("button.png") button2=LoadImage("button2.png") creditsb=LoadImage("buttoncredits.png") creditsba=LoadImage("creditsba.png") gfxCircle=LoadImage("gfxCricle.png") backa=LoadImage("backa.png") back=LoadImage("back.png") MaskImage gfxCircle,255,0,255 HidePointer While Not KeyHit(1) circleX = MouseX() circleY = MouseY() Maustaste = MouseHit (1) If circlex>100 And circlex<180 And circley>100 And circley<120 Then DrawImage button2,100,100 If Maustaste = 1 Then Exit End If Else DrawImage button,100,100 End If If circlex>100 And circlex<180 And circley>150 And circley<170 Then DrawImage creditsba,100,150 If Maustaste = 1 Then menue=1 Else DrawImage creditsb,100,150 End If If menue = 1 Then Cls btc=LoadImage("credits.png") MaskImage btc,255,0,255 DrawImage btc,400,330 If circlex>100 And circlex<180 And circley>700 And circley<720 Then DrawImage backa,100,700 If Maustaste = 1 Then ;Sprung zum Hauptmenü End If Else DrawImage back,100,700 EndIf EndIf DrawImage gfxCircle,circleX,circleY Flip Cls Wend End so was oder wie muss ich das jetzt machen? |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Habe mal schnell den Code mit einem Untermenue erstellt
da es einfacher zu lesen ist und die Uebersicht nicht verloren geht Code: [AUSKLAPPEN] Graphics 1024,768,32,1
SetBuffer BackBuffer() Global circleX, circleY, Maustaste button=LoadImage("button.png") button2=LoadImage("button2.png") creditsb=LoadImage("buttoncredits.png") creditsba=LoadImage("creditsba.png") gfxCircle=LoadImage("gfxCricle.png") backa=LoadImage("backa.png") back=LoadImage("back.png") MaskImage gfxCircle,255,0,255 HidePointer While Not KeyHit(1) Mausabfrage() ; Mausdaten holen ;----------------------Beenden Button If circlex>100 And circlex<180 And circley>100 And circley<120 Then DrawImage button2,100,100 If Maustaste = 1 Then Exit End If Else DrawImage button,100,100 End If ;------------------Credits Button If circlex>100 And circlex<180 And circley>150 And circley<170 Then DrawImage creditsba,100,150 If Maustaste = 1 Then menue=1 Else DrawImage creditsb,100,150 End If If menue = 1 Then ; menue punkt 1 angewählt Menue = 0 ; wieder ausschalten da sonst immer wieder hier rein gesprungen wird Gosub Credits_Anzeige ; mal mit Gosub EndIf DrawImage gfxCircle,circleX,circleY Flip Cls Wend End ; UNTER PROGRAMME .Credits_Anzeige btc = LoadImage("credits.png"); nur einmal laden da es ja nicht oft gebraucht wird MaskImage btc,255,0,255 Repeat ; schleife um das bild immer neu zu zeichnen Cls Mausabfrage() DrawImage btc,400,330 ; zurück Button If circlex>100 And circlex<180 And circley>700 And circley<720 Then DrawImage backa,100,700 If Maustaste = 1 Then Exit ; schleife verlassen End If Else DrawImage back,100,700 EndIf ; Mauszeiger DrawImage gfxCircle,circleX,circleY Flip Forever FreeImage btc ; das Bild wieder löschen, wird ja nicht mehr gebraucht Return ; zurück ins hauptmenue Function Mausabfrage() circleX = MouseX() circleY = MouseY() Maustaste = MouseHit (1) End Function du solltest auf jeden Fall deine Code zerstückeln das ist immer einfacher.. mit functionen und Subroutinen geht das schon ganz gut ! das geänderte ist jetzt noch nicht optimal gelöst aber hoffe das es verständlich ist. übrigens kannste den Code mit Tabs und Leerzeichen oder Doppelpunkt einrücken, dann ersparst du dir lästiges suchen wo den ein end if fehlt oder zuviel ist! der code ist nicht getestet also debugger an und im fenstermodus laufen lassen |
||
[BB2D | BB3D | BB+]
|
black_threat |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
gigantisches *thx* funzt einwandfrei ![]() |
||
Andy_Y |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hey,
ich hab das problem das bei mir der zurück button nicht funktioniert ich habe es bereits mit der return anweisung versucht allerdings passiert garnichts wenn der klick auf den zurück button geschieht. ich hab das allerdings etwas anderst realisiert als ihr Code: [AUSKLAPPEN] Repeat
FlushMouse WaitMouse If (MouseX() > 350 And MouseX() < 510) And (MouseY() > 100 And MouseY() < 125) Then grafik() ;ElseIf (MouseX() > 350 And MouseX() < 510) And (MouseY() > 140 And MouseY() < 165) Then ; sound() ElseIf (MouseX() > 350 And MouseX() < 510) And (MouseY() > 180 And MouseY() < 205) Then control() ElseIf (MouseX() > 350 And MouseX() < 510) And (MouseY() > 220 And MouseY() < 245) Then Return EndIf Until KeyHit(1) vielleicht könnt ihr mir sagen wie ich den zurück button zur funktionalität bringen kann |
||
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
1. der thread is 5 jahre alt.. muss man den unbedingt raus holen?
und zu deiner frage.. Return ![]() |
||
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Benutz "Bereich-IDs" also wenn du im Hauptmenü bist dann wird das und das gezeichnet und überprüft und wenn du in nem Untermenü bist wird eben was anderes gezeichnet und überprüft. Wenn jetzt ein Klick in Bereich mit der ID 1 ist und der Button wo dort geklickt wurde in ein anderes Menü führt wird einfach die Bereichs-ID geändert und es werden andere Sachen gezeichnet und überprüft ^_^ | ||
![]() |
jonas1996Betreff: Bitte nicht hauen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wies ![]() |
||
iLive4myLive.de.tl
programmieren123.de.tl |
aletes |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Goto ist böse ![]() es ist das pure böse, es führt zu unübersichtlichkeit nimm lieber Gosub ![]() ys, aletes |
||
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein, es kann sogar zur Übersichtlichkeit beitragen (wenn auch selten)... | ||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
![]() |
jonas1996 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ich benutze fast nur goto weil ich zu dumm für die anderen befehle bin ![]() Mfg jonas1996 |
||
iLive4myLive.de.tl
programmieren123.de.tl |
aletes |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
naja, Gosub funzt aber sehr ähnlich ,so:
Code: [AUSKLAPPEN] ...
Gosub test ... .test Print "Hallo" Waitkey Return |
||
![]() |
jonas1996 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Naja gosub hat ja nur noch return am ende...das ist irgentwie blöd
mfg jonas1996 |
||
iLive4myLive.de.tl
programmieren123.de.tl |
aletes |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
return kann man weglassen | ||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn Du Gosub ohne return benutzt hast du den Sinn und Zweck von Subroutinen noch nicht erfasst. Zudem wird dir dein Programm bei ausreichend langer Laufzeit mit einem Stack-Overflow-Error krepieren.
Ich empfehle wegen des getrennten Datenraumes Funktionen. Sauberer geht es nicht. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
jonas1996 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aso,
also ist nutzte ich ab sofort Funktion() und net Goto! Danke, werde es gleich mal ausprobieren! mFG jonas1996 |
||
iLive4myLive.de.tl
programmieren123.de.tl |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group