Menü wechsel Problem *Erledigt*

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Schnittlauch

Unkraut

Betreff: Menü wechsel Problem *Erledigt*

BeitragFr, Jul 28, 2006 20:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo

Ich habe ein Problem, mit dem Menüsystem von meinem Spiel.
Wenn ich im Hauptmenu auf Hiscore clicke (die anderen sachen existieren noch nicht) lande ich im Hiscore Fenster, und wenn ich dann zurück will, sehe ich kurz wieder das Hauptmenu komme aber sofort wieder zu hiscore.

Hier die betrofen Teile des Codes:

Hauptschleife
Code: [AUSKLAPPEN]

Const GAME_MENU    = 0
Const GAME_GAME    = 1
Const GAME_HISCORE = 2
Const GAME_EDITOR  = 3
Const GAME_END     = 4

Global game_stat = GAME_MENU

While True
   Cls
   
   Select game_stat
      Case GAME_MENU
         draw_menu()
      Case GAME_GAME
      
      Case GAME_HISCORE
         draw_hiscore()
      Case GAME_EDITOR
      
      Case GAME_END
         Exit
   End Select
   
   If KeyHit(KEY_ESCAPE) Then game_stat = GAME_END
   
   Flip
   
Wend


Haupt Menü:
Code: [AUSKLAPPEN]

Global bg_menu:TImage = LoadImage("GFX/bg_menu.png")
Global logo:TImage = LoadImage("GFX/logo.png")

Global start:TButton = New TButton
start.setup(400,250,"GFX/start_b.png")

Global hisco:TButton = New TButton
hisco.setup(400,320,"GFX/hisco_b.png")

Global editor:TButton = New TButton
editor.setup(400,390,"GFX/editor_b.png")

Global ende:TButton = New TButton
ende.setup(400,460,"GFX/ende_b.png")


Function draw_menu()
   SetColor 150,150,150
   SetBlend(alphablend)
   TileImage(bg_menu)

   cour_stat = NORMAL

   start.draw()
   hisco.draw()
   editor.draw()
   ende.draw()
   
   If start.check() Then game_stat = GAME_GAME
   If hisco.check() Then game_stat = GAME_HISCORE
   If editor.check()Then game_stat = GAME_EDITOR
   If ende.check()    Then game_stat = GAME_END
   
   drawcoursor()
   
   SetBlend(alphablend)
   
   DrawText("V 0.1 PRE Alpha",670,550)
   
   SetColor 255,255,255
   DrawImage(logo,150,10)
   
End Function


Hiscore Menu:
Code: [AUSKLAPPEN]

Global zurueck:TButton = New TButton
zurueck.setup(400,460,"GFX/zurueck_b.png")

Function draw_hiscore()
   SetColor 150,150,150
   SetBlend(alphablend)
   TileImage(bg_menu)

   cour_stat = NORMAL
   
   zurueck.draw()
   
   If zurueck.check() Then game_stat = GAME_MENU
   
   drawcoursor()
   
   SetColor 255,255,255
   DrawImage(logo,150,10)
End Function


GUI Code:
Code: [AUSKLAPPEN]

Global cour:TImage = LoadImage("GFX/cour.png")
Global mx
Global my

Const NORMAL = 0
Const ACTIVE = 1

Global cour_stat =  NORMAL

Type TButton
   Field x
   Field y
   Field image:TImage
   Field active
   Field click
   Field size:Float
   Field zsize:Float
   Method draw()
      If size < zsize Then size = size + 0.05
      If size > zsize Then size = size - 0.05
      SetScale(size,size)
      SetBlend(alphablend)
      DrawImage image,x,y
      SetScale(1,1)
   End Method   
   Method setup(nx,ny,nimage$)
      x = nx
      y = ny
      image = LoadImage(nimage$)
      size = 0.8
      zsize = 0.8
      MidHandleImage(image)
   End Method
   Method check()
      If ImagesCollide(image,x,y,0,cour,mx-10,my-10,0) Then
         cour_stat = ACTIVE
         zsize = 1
         If MouseHit(1) Then
            click = 1
            zsize = 0.8
            size = 0.8
            active = 0
         Else
            click = 0
         End If
      Else
         zsize = 0.8
      End If
      Return click
   End Method
End Type

Function drawcoursor()
   mx = MouseX()
   my = MouseY()
   
   SetColor 200,100,0
   SetAlpha(0.8)
   SetBlend(ALPHABLEND)
   DrawLine(mx,0,mx,my-10)
   DrawLine(mx,my+10,mx,600)
   DrawLine(0,my,mx-10,my)
   DrawLine(mx+10,my,800,my)
   
   If cour_stat = 0 Then
      SetColor 255,255,255
   ElseIf cour_stat = 1 Then
      SetColor 255,0,0
   End If
   
   DrawImage(cour,mx-10,my-10)
   
   SetColor 255,255,255
   SetAlpha(1)
   SetBlend(ALPHABLEND)
End Function




EDIT: Habs schon hinbekommen ^^[/b]
Ich wars nicht.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group