Stellt ein Menu mit Ereignis bei den Optionen da.
Hoffe, der Quellcode spricht für sich.
Von mir aus kann er gern verbessert werden und wieder hier reingestellt werden. Ist nur eine Skizze für Anfänger.
Hoffe, es hilft jemandem.
Gruß, Folker
Code: Alles auswählen
Enumeration
#Maus
EndEnumeration
#Violett = $FF00FF
#Weisz = $FFFFFF
#Grun = $00FF00
#Rot = $0000FF
Global MenuPunkte.l
Procedure MenuPunkt(Text.s)
MenuPunkte+1
DrawText(100,100+25*MenuPunkte,LSet(" "+Text,20," "),0,#Grun)
EndProcedure
Procedure MaleMenu()
MenuPunkte=0
StartDrawing(ScreenOutput())
MenuPunkt("Spiel starten")
MenuPunkt("Optionen")
MenuPunkt("Credits")
MenuPunkt("Beenden")
StopDrawing()
ProcedureReturn MenuPunkte
EndProcedure
Procedure MachSprite(Sprite, x,y)
CreateSprite(Sprite,x,y)
StartDrawing(SpriteOutput(Sprite))
Box(0,0,x,y,#Violett)
EndProcedure
Procedure MachMauszeiger()
MachSprite(#Maus,16,16)
LineXY(0,0,11,11,#Weisz)
LineXY(0,0,0,16,#Weisz)
LineXY(11,11,0,16,#Weisz)
StopDrawing()
EndProcedure
Procedure IstMaus()
Ergebnis=0
For MenuP=1 to 4
If MouseX()>100 and MouseX() < 220 and MouseY()> (100+25*MenuP) and MouseY()< (100+25*MenuP+20)
StartDrawing(ScreenOutput())
If MouseButton(#PB_MouseButton_Left)
Ergebnis=MenuP
DrawText(300,40,Str(MouseX())+" : "+Str(MouseY())+" Klick "+Str(MenuP))
Else
DrawText(300,40,Str(MouseX())+" : "+Str(MouseY()))
EndIf
StopDrawing()
EndIf
Next
ProcedureReturn Ergebnis
EndProcedure
Global MAuswahl
Procedure MenuAbfrage(AlteWahl)
MMax=MaleMenu()
AuswahlMaus=IstMaus()
Auswahl=0
If KeyboardReleased(#PB_Key_Down)
MAuswahl+1
EndIf
If KeyboardReleased(#PB_Key_Up)
MAuswahl-1
EndIf
If KeyboardReleased(#PB_Key_Return)
Auswahl=MAuswahl
EndIf
If MAuswahl<1
MAuswahl=MMax
EndIf
If MAuswahl>MMax
MAuswahl=1
EndIf
StartDrawing(ScreenOutput())
Box(80,100+25*MAuswahl,15,10,#Rot)
StopDrawing()
If AuswahlMaus<>0
Auswahl=AuswahlMaus
EndIf
If Auswahl>0
ProcedureReturn Auswahl
Else
ProcedureReturn AlteWahl
EndIf
EndProcedure
InitSprite()
InitMouse()
InitKeyboard()
InitSound()
OpenScreen(640,480,32,"Menu")
TransparentSpriteColor(#PB_Default,#Violett)
MachMauszeiger()
MAuswahl=1
Repeat
ClearScreen(0)
ExamineKeyboard()
MenuAuswahl=MenuAbfrage(MenuAuswahl)
debug MenuAuswahl
If KeyboardPushed(#PB_Key_Escape)
Quit=1
EndIf
ExamineMouse()
DisplayTransparentSprite(#Maus,MouseX(),MouseY())
If MenuAuswahl=2
StartDrawing(ScreenOutput())
DrawText(300,300,"Optionen !!!",#Rot, 0)
StopDrawing()
EndIf
If MenuAuswahl=4
Quit=1
EndIf
Delay(10)
FlipBuffers()
Until Quit=1