Cooles Übersichtlich Programmiertes Menü von Mir dem Großen

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

Unplugged

Betreff: Cooles Übersichtlich Programmiertes Menü von Mir dem Großen

BeitragFr, Jan 14, 2005 22:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, die Überschrift vergesst einfach mal...
Ein kleines Menü:
Die Goto, Gosub oder Funktionen lassen sich ja in die If-Abfragen einbauen.
Code: [AUSKLAPPEN]

Graphics 800,600 : AppTitle "Kleines Menü"
SetBuffer BackBuffer() : ClsColor 0,100,100
Repeat
Cls
wertcredits = RectsOverlap (50,50,400,50,MouseX()-10,MouseY()-10,10,10)
wertspiel = RectsOverlap (50,150,400,50,MouseX()-10,MouseY()-10,10,10)
wertende = RectsOverlap (50,250,400,50,MouseX()-10,MouseY()-10,10,10)

If wertcredits = 0 Then
Color 0,0,0 : Rect 50,50,400,50 :  Color 255,255,0 :Text 60,60,"Credits"
EndIf

If wertcredits = 1 Then
Color 255,255,0 : Rect 50,50,400,50 :  Color 0,0,0 :Text 60,60,"Credits"
EndIf

If wertspiel = 0 Then
Color 0,0,0 : Rect 50,150,400,50 :  Color 255,255,0 :Text 60,160,"Spiel"
EndIf

If wertspiel = 1 Then
Color 255,255,0 : Rect 50,150,400,50 :  Color 0,0,0 :Text 60,160,"Spiel"
EndIf

If wertende = 0 Then
Color 0,0,0 : Rect 50,250,400,50 :  Color 255,255,0 :Text 60,260,"Ende"
EndIf

If wertende = 1 Then
Color 255,255,0 : Rect 50,250,400,50 :  Color 0,0,0 :Text 60,260,"Ende"
EndIf

Color 0,0,255 : Rect MouseX()-10,MouseY()-10,10,10
Flip
Until MouseHit(1)
User posted image

rambo256

BeitragFr, Jan 14, 2005 23:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Also sry,für sowas ist das Codearchive nicht gedacht.
Menüs gibbet schon wie Sand am Meer. -.-
Asus F53z

Das Leben ist eine reine Konkatenation...
 

lettorTrepuS

BeitragFr, Jan 14, 2005 23:10
Antworten mit Zitat
Benutzer-Profile anzeigen
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger.

Unplugged

BeitragFr, Jan 14, 2005 23:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry, wenn der Post nicht passend ist, war klar dass dieser Post mal wieder Irgendjemand unangenehm juckt, der dann wieder sagen muss, dass es nicht passt und soweiter, aber ist das Codearchiv nicht dafür da?
@Turtle: Gute Idee Wink.
User posted image
 

Kekskiller

BeitragFr, Jan 14, 2005 23:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Manchmal gibt es Zeiten, in denen bei die Flameader durchkommt Wink ...
Aber hier macht das keinen Spaß, sowas kann ja wirklich jeder, der sich zwei,
drei Tage mit BB beschäftigt...

Travis

BeitragSa, Jan 15, 2005 5:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Sieht eigendlich eher nach einer unfertigen Button-Funktion aus. Hier mal was aus meinem Archiv.

Code: [AUSKLAPPEN]

Graphics 400,350,16,2
SetBuffer BackBuffer()
AppTitle "Buttons"

Repeat
 ClsColor 0,0,100
  Cls
   
   Text 0,00, "BUTTON A GEDRÜCKT:  " + Button(100,100,100,20,"OK")
   Text 0,10, "BUTTON B GEDRÜCKT:  " + Button(100,130,100,20,"ABBRUCH")
   Text 0,20, "BUTTON C GEDRÜCKT:  " + Button(100,160,100,20,"IGNORIEREN")
 
 Flip
Until KeyHit(1)
End


Function Button(x,y,w,h,Text$)
 If h < FontHeight() Then h = FontHeight()
 If w < StringWidth(Text$) Then w = StringWidth(Text$)

 Color 255,255,255
  If MouseOver(x,y,w,h) And MouseDown(1) Then Color 100,100,100: d = 1
  Rect x,y,w,h,1
 Color 100,100,100
  If MouseOver(x,y,w,h) And MouseDown(1) Then Color 255,255,255
  Rect x+1, y+1, w-1, h-1,1
 Color 198,198,198
  If MouseOver(x,y,w,h)
  EndIf
  Rect x+1, y+1, w-2, h-2,1
 Color 0,0,0
  Text x + w/2 - (StringWidth(Text$)/2), y + h/2 - (FontHeight()/2) + d, Text$
  If MouseOver(x,y,w,h) And MouseDown(1) Then Return 1
End Function

Function MouseOver(x,y,w,h)
 If MouseX() > x And MouseX() < x+w And MouseY() > y And MouseY() < y+h Then Return 1
End Function
www.funforge.org

Ich hasse WASD-Steuerung.

Man kann alles sagen, man muss es nur vernünftig begründen können.

Unplugged

Betreff: Ich hab nochn bisschen getüftelt

BeitragDi, Jan 18, 2005 15:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Graphics 800,600 : AppTitle "Kleines Menü"
SetBuffer BackBuffer() : ClsColor 0,0,0
font = LoadFont("trebuchet ms",20,0,0,0) : SetFont font
Repeat
Cls
For i = 1 To 500
Color i/11,i/3,i/11
Line i,0,i,600
Next

wertcredits = RectsOverlap (50,50,400,50,MouseX()-10,MouseY()-10,10,10)
wertspiel = RectsOverlap (50,150,400,50,MouseX()-10,MouseY()-10,10,10)
wertende = RectsOverlap (50,250,400,50,MouseX()-10,MouseY()-10,10,10)

If wertcredits = 0 Then
Color 0,0,0 : Rect 50,50,400,50 : Color 255,255,0 :Text 60,60,"Credits"
EndIf

If wertcredits = 1 Then
Color 255,255,0 : Rect 50,50,400,50 : Color 0,0,0 :Text 60,60,"Credits"
Color 255,255,0
Text 600,100,"Menu by Unplugged"
EndIf

If wertspiel = 0 Then
Color 0,0,0 : Rect 50,150,400,50 : Color 255,255,0 :Text 60,160,"Spiel"
EndIf

If wertspiel = 1 Then
Color 255,255,0 : Rect 50,150,400,50 : Color 0,0,0 :Text 60,160,"Spiel"
Color 255,255,0
Text 600,100,"Mache ein Spiel!"
EndIf

If wertende = 0 Then
Color 0,0,0 : Rect 50,250,400,50 : Color 255,255,0 :Text 60,260,"Ende"
EndIf

If wertende = 1 Then
Color 255,255,0 : Rect 50,250,400,50 : Color 0,0,0 :Text 60,260,"Ende"
Color 255,255,0
Text 550,100,"Willst du das Spiel verlassen?"
EndIf

Color 255,255,255 : Oval  MouseX()-20,MouseY()-20,20,20
Flip
Until MouseHit(1)
User posted image

Spikespine

BeitragDi, Jan 18, 2005 15:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Den Verlauf würd ich eher als Bild speichern, geht schneller.

DivineDominion

BeitragDi, Jan 18, 2005 15:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke!!!! Endlich konnte ich mein Menü verbessern!!!!

Code: [AUSKLAPPEN]
Type TGSMenu Extends TGameState
   
   Field iCursorPos:int, iCursorTimer:int
   
   Method enter(  )
   EndMethod
   
   Method process:Int( iTime:int )
      
      Rem
         Leertaste ist zum bestätigen gedacht.
         Liefert dann den passenden Gamestate-Wert
         für die Menüpunkte.
      EndRem
      If KEYMANAGER.isHit( KEY_SPACE )
         
         Select Self.iCursorPos
            
            Case 0
               
               Return GS_ULTIMAONLINE
            
            Case 1
               
               Return GS_WILDARMS
            
            Case 2
               
               Return -1
               
         EndSelect
      
      EndIf
      
      
      Rem
         Einzelne Anschläge können beliebig schnell
         ausgeführt werden. Teste das hier nur schon
         mal für das WA-Itemding :)
      EndRem         
      If KEYMANAGER.isHit( KEY_DOWN )
         
         Self.iCursorPos :+ 1
         Self.iCursorTimer = MilliSecs(  ) + 600
      
      ElseIf KEYMANAGER.isHit( KEY_UP )
         
         Self.iCursorPos :- 1
         Self.iCursortimer = MilliSecs(  ) + 600
         
      EndIf
      
      
      Rem
         Um gedrückt halten zu können muss die Frist
         abgelaufen sein, damit es nicht einfach so
         vorüber huscht.
      EndRem
      If MilliSecs(  ) > Self.iCursorTimer
         
         If KEYMANAGER.isDown( KEY_DOWN )
               
            Self.iCursorPos :+ 1
            Self.iCursorTimer = MilliSecs(  ) + 60
         
         ElseIf KEYMANAGER.isDown( KEY_UP )
            
            Self.iCursorPos :- 1
            Self.iCursorTimer = MilliSecs(  ) + 60
            
         EndIf
      
      EndIf
      
      
      Rem
         Wenn man über die Ränder hinausscrollen würde,
         wird die Position zurückgesetzt.
      endrem
      If Self.iCursorPos > 2
         
         Self.iCursorPos = 0
      
      ElseIf Self.iCursorPos < 0
         
         Self.iCursorPos = 2
         
      endif
      
      'Menü Malen
      Self.draw(  )
      
   EndMethod
   
   Method leave(  )
   EndMethod
   
   Method draw(  )
      
      DrawText "Ultima Online", 140, 100
      DrawText "Wild Arms", 140, 130
      DrawText "Raus hier!", 140, 160
      
      DrawRect 100, 100 + Self.iCursorPos * 30, 20, 10
      
   EndMethod
   
EndType
christian.tietze@gmail.com - https://christiantietze.de
macOS
 

Kekskiller

BeitragDi, Jan 18, 2005 19:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Das nenn ich mal offene Ironie!

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group