Probleme beim Menu Switch
Übersicht

![]() |
ReLeNtLeSSBetreff: Probleme beim Menu Switch |
![]() Antworten mit Zitat ![]() |
---|---|---|
Heyho,
normalerweise müsste mein Stück Code hier prächtig funzen, allerdings gibt es einige Probleme beim Switchen zwischen den Menüs... Das Menü bleibt quasi "stecken"... Der Code: Code: [AUSKLAPPEN] ;Hautpschleife Repeat If menu=1 Then menu() EndIf If game=1 Then If time_timer=1 Then time1=MilliSecs() time_timer=0 EndIf landscape() auto() create_autos() autos_bewegen() create_camels() camels_bewegen() time2=MilliSecs() time3=time2-time1 time4=time3/600 kollisionen() Color(255,0,0) Text 0,0,"Aktuelle Punktzahl: "+points Text 0,30,"Aktuelle Spielzeit: "+time4+" Secs" Text 0,60,"Bisherige Crashes: "+crashcount Color(255,255,255) EndIf If crashcount>=3 Then the_end() EndIf If menusetting=1 Then menu_settings() EndIf If credits=1 Then credits() EndIf Flip Cls Until KeyHit(1) ;Functions Function menu() DrawImage bg,0,0 DrawImage button1,220,200 DrawImage button2,220,400 DrawImage button3,220,600 If ImagesOverlap(button1,220,200,maus,MouseX(),MouseY()) Then DrawImage button1_a,220,200 If ImagesOverlap(button2,220,400,maus,MouseX(),MouseY()) Then DrawImage button2_a,220,400 If ImagesOverlap(button3,220,600,maus,MouseX(),MouseY()) Then DrawImage button3_a,220,600 If ImagesOverlap(button1,220,200,maus,MouseX(),MouseY()) And MouseDown(1)=True Then menu=0 game=1 EndIf If ImagesOverlap(button2,220,400,maus,MouseX(),MouseY()) And MouseDown(1)=True Then menu=0 menusetting=1 EndIf If ImagesOverlap(button3,220,600,maus,MouseX(),MouseY()) And MouseDown(1)=True Then menu=0 credits=1 EndIf DrawImage maus,MouseX(),MouseY() End Function ;-- Function menu_settings() Text 400,400,"Not available yet." WaitKey() menusetting=0 menu=1 End Function ;-- Function credits() Cls DrawImage bg,0,0 Text 200,400,"Game Design and Programming by Dominik van Megchelen. CLOSED BETA 1" Delay 3000 End End Function ;__________________ Wer den Fehler findet, vielen Dank! /EDIT: Meine Globals ![]() Code: [AUSKLAPPEN] Global y1=100 Global y11=400 Global y21=700 Global autox=750 Global autoy=950 Global counter=0 Global points=0 Global counter_spielzeit=0 Global punkte_timer=0 Global camelcounter=0 Global aut_timer=0 Global by1=-20 Global by2=-180 Global by3=-350 Global by4=0 Global by5=-250 Global by6=-450 Global crashcount=0 Global points_check=0 Global points_camel=0 Global cameldeath=0 Global time4 Global menu=1 Global game=0 Global menusetting=0 Global credits=0 Global time_timer=1 Global ende=0 |
||
Shark |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Könntest du vielleicht dein Problem näher erläutern?
Was meinst du beim switchen vom Menü? Vom Spiel zum Menü oder wie? mfg Shark |
||
![]() |
ReLeNtLeSS |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn ich im Hauptmenu ins Einstellungen menu will, geht gar nixm her..... alles bleibt stehn | ||
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nimm lieber nur eine einzige Variabel für die Menüstates, so etwas wie
Code: [AUSKLAPPEN] MENUESTATE% Wenn du verschiedene nimmst ist die Gefahr, dass du zwei zur gleichen Zeit oder gar keinen aktiv hast gegeben. Im code könnte mein Beispiel so aussehen: Code: [AUSKLAPPEN] repeat
cls select MENUESTATE case 1 Hauptmenue_run() ;Hauptmenü case 2 Game_run();Game case 3 Highscores_run();Highscores end select flip until MENUESTATE = 0 end |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
1. Rücke deinen Code ein. Sonst werden die meisten hier die Mithilfe verweigern, denn was sich schon liesst wie Buchstabensuppe macht unheimlich Lust drauf zu helfen.
2. Warum 35+x Variaben wo Du grade hinverzweigen willst? Da ist es kein Wunder dass Du vergisst einige wieder auf 0 zu setzen. EINE Varable in der der aktuelle Gamestate (Menu, Einstellungen, etc.) anhand eines Wertes gespeichert ist reicht vollkommen. Dann kannst Du die auch alle in einer feinen select-case abarbeiten und ersparst Dir den unseligen if-Wald. |
||
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 |
![]() |
ReLeNtLeSS |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Firstdeathmaker
Danke, so teste ich das gleich mal aus, melde mich zurück! /EDIT: Hab da doch ein Problem. Woher soll das Prog denn wissen welches Bild sich mit welchem Bild bei MENUSTATE CASE 1 überschneidet? @bladerunner ich finde, der code is eingerückt.... was sollte man da noch einrücken? |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] if a = 3454
for a = 1 to 10 ;hier ist ein eingerückter block print blub next endif Das ist eingerückt. Was Du machst ist Abstände lassen. Einrücken (per Tab) ist extremst förderlich für die Übersicht, denn man erkennt auf einen Blick die logischen Blöcke im Code. |
||
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 |
![]() |
ReLeNtLeSS |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mein Hauptcode is eingerückt, nur das was ihr hier seht nich, weil es ein CODEAUSSCHNITT ist.
Ausserdem, habe ich jetz das Problem das wenn ich auf Settings klicke nur schwarzer Bildschirm kommt... |
||
Marek |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Selbst wenn es nur ein Codeausschnitt ist, kannst du ihn doch wohl einrücken oder nicht?
~Edit~ In deiner Funktion steht sowas wie Text x,y,txt$ Waitkey() Hier ist auch schon der Fehler,ein syímples Flip dazwischen sollte das Problem auch schon lösen... Am besten du schaust dier nocmal die Doppel-Buffering-Tutorials durch.. MfG Marek |
||
Wer lesen kann ist klar im Vorteil... |
![]() |
ReLeNtLeSS |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Marek
ich versteh schon, ich habe aber einfach die delays rausgenommen damit er das flip der hauptschleife nimmt... ich hab endlich den sinn von flip etc verstanden^^ |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group