Menü verbessern

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Hannes1995

Betreff: Menü verbessern

BeitragMi, Okt 17, 2007 14:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, Leute !
Ich habe mir ein Menü mehr oder weniger gebastelt und möchte jetzt das wenn ich im menü optionen bin auf Grafikoptionen klicken kann, das dann aber auch wirklich etwas angezeigt wird ! *wird es nämlich nicht*
Zum besseren Verständnis:
Der Code:
Code: [AUSKLAPPEN]
Include "PButtons.bb"

Graphics 800, 600, 16, 2
SetBuffer BackBuffer()

Global MainImage = LoadImage("textures/symbols/main.png")
Global NewGame = LoadImage("textures/symbols/NewGame.png")
Global LoadGame = LoadImage("textures/symbols/LoadGame.png")
Global EndGame = LoadImage("textures/symbols/EndGame.png")
Global Options = LoadImage("textures/symbols/Options.png")
Global opt_graphics = LoadImage("textures/symbols/opt_graphics.png")
Global opt_sound = LoadImage("textures/symbols/opt_sound.png")
Global opt_steuer = LoadImage("textures/symbols/opt_steuer.png")


Global menu = 1
Global Timer2 = CreateTimer(30)
Global menustate = 1

Global Btn_daddln = PB_CreateButton("Jetzt spielen: Hier klicken!", 350, 200, 1, 100, 50, "textures/symbols/NewGame2.png")
Global Btn_load = PB_CreateButton("Spielstand laden", 350, 260, 1, 100, 50, "textures/symbols/LoadGame2.png")
Global Btn_options = PB_CreateButton("Optionen", 350, 320, 1, 100, 50, "textures/symbols/Options2.png")
Global Btn_beenden = PB_CreateButton("Zum Beenden hier drücken.", 350, 380,1, 100, 50, "textures/symbols/EndGame2.png")
Global Btn_back = PB_CreateButton("Drücke hier, um zurück zu gelangen.", 10, 10, 1, StringWidth("Zurück."), FontHeight())

PB_SetHintFont("Verdana")
PB_SetHintColor(245, 248, 152, 0, 0, 0, 208, 55, 163)

Repeat
   WaitTimer(Timer2)
   Cls
     
      DrawImage NewGame,350,200 
      MaskImage NewGame,255,255,255

      DrawImage LoadGame,350,260
      MaskImage LoadGame,255,255,255
     
      DrawImage Options,350,320
      MaskImage Options,255,255,255
     
      DrawImage EndGame,350,380
      MaskImage EndGame,255,255,255

   Select menustate
      Case 1
         ; Hauptmenü   
            ; Erst alle anderen Buttons Deaktivieren
            PB_DisableAll()
            PB_EnableButton(Btn_daddln)
            PB_EnableButton(Btn_load)
            PB_EnableButton(Btn_options)
            PB_EnableButton(Btn_beenden)
            ; Das Menü-Bild malen
            DrawImage MainImage, 0, 0
            If PB_ButtonHit(Btn_daddln) Then menustate = 2
            If PB_ButtonHit(Btn_load) Then menustate = 3
            If PB_ButtonHit(Btn_options) Then menustate = 4
            If PB_ButtonHit(Btn_beenden) Then menu = 0
      Case 2
         ; spielen
            ; Jetzt zuerst alle Buttons deaktivieren, sonst könnte man die Anderen Buttons noch drücken!
            PB_DisableAll()
            Cls
            Gosub Mainprogramm
      Case 3
        ; laden
           PB_DisableAll()
           PB_EnableButton(Btn_Back)
           Cls
           Color 255, 255, 255
           Text 10,10,"Zurück"
           If PB_ButtonHit(Btn_back) Then menustate = 1
           Text 100,10,"Wähle einen Spielstand zum Laden aus: "

      Case 4 ;Hier fängt das Problem an ...
        ; Optionen
           PB_DisableAll()
           PB_EnableButton(Btn_back)           

           Btn_optgra = PB_CreateButton("Drücke hier um die Grafikoptionen zu ändern ", 350, 200, 1, 100, 50, "textures/symbols/opt_graphics2.png")
           Btn_optsou = PB_CreateButton("Drücke hier um die Soundoptionen zu ändern ", 350, 260, 1, 100, 50, "textures/symbols/opt_sound2.png")
           Btn_optste = PB_CreateButton("Drücke hier um die Steuerung zu ändern ", 350, 320, 1, 100, 50, "textures/symbols/opt_steuer2.png")

           PB_EnableButton(Btn_optgra)
           PB_EnableButton(Btn_optsou)
           PB_EnableButton(Btn_optste)

           Cls
           Color 255, 255, 255
           Text 10,10,"Zurück"
           If PB_ButtonHit(Btn_back) Then menustate = 1
           If PB_ButtonHit(Btn_optgra) Then menustate = 5
           If PB_ButtonHit(Btn_optsou) Then menustate = 6
           If PB_ButtonHit(Btn_optste) Then menustate = 7

DrawImage opt_graphics,350,200
MaskImage opt_graphics,255,255,255

DrawImage opt_sound,350,260
MaskImage opt_sound,255,255,255

DrawImage opt_steuer,350,320
MaskImage opt_steuer,255,255,255
   ; ...und hier hörts auf ! *glaub ich*
   End Select

   ; Nicht vergessen: Updaten
   PB_Update()   
   
   Flip
Until menu = 0
End
 

Lador

BeitragMi, Okt 17, 2007 16:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
DrawImage NewGame,350,200
MaskImage NewGame,255,255,255

DrawImage LoadGame,350,260
MaskImage LoadGame,255,255,255

DrawImage Options,350,320
MaskImage Options,255,255,255

DrawImage EndGame,350,380
MaskImage EndGame,255,255,255


MaskImage kommt generell nach LoadImage(). Naja, das ist ja auch nicht dein Problem.

Ich habe das auch mal gemacht, da habe ich das etwa so gelöst:
z.B. für Auflösung, habe ich eine Variable genommen, die hat das, was in der Datei "Optionen.ini" stand, speicherte (also z.B. "800", "600" oder "Fenstermodus"). Dann eine, die z.B. Auflösungsbreite in einem Int speicherte, also "800", "600" oder "0". Dann einfach beim Mausklick überprüft, welche Auflösung die nächst höhere ist (ich hab das ohne Grafiktreiber gelöst), oder ob Vollbild 1 (True) oder 0 (False) ist. Also reine Logik.

MFG Lador

The_Nici

BeitragMi, Okt 17, 2007 16:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Um einen klick abzufragen, würd ichs so machen:
Mach en variable mit Mousehit(1) drin.
Wenn dann MouseX() innerhalb des Buttons ist. (Grösser Buttonstartx, kleiner buttonstartX+breite, das gleiche mit Y) und ms=1 ist, wird irgendwas gemacht.[/code]

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group