kleines Menu/inventar problem
Übersicht

![]() |
DottakopfBetreff: kleines Menu/inventar problem |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi !!
Ich schau mir gerade an wie man menüs bzw. inventars macht. Ich möchte mein Menü am rechten rand des Bildschirms haben, wärend man das game im Hintergrund sieht. Das Problem ist das "makierkästchen" welches zwar makiert, jedoch das zuvor makierte nicht mehr ent - makiert ![]() ich weis, das das mit einem cls leicht behoben werden könnte, doch da wird ja der ganze Bildschirminhalt gelöscht einschließlich meines Spiels... Bilder sagen mehr als 1000 worte : (uff zeilenumbrüche ^^) Code: [AUSKLAPPEN] Graphics 800,600,16,2 SetBuffer BackBuffer() ;globals Global menu_start_index = 1,menu_max_index = 7 Global menu_wahl = 1 Global menu_Anzahl = 8 Global menu_x = 450,menu_y=100 Global wahl = 1 ;arrys Dim a$(menu_anzahl) a$(1) = "Charakter" a$(2) = "Fähigkeit" a$(3) = "Ausrüsten" a$(4) = "Gegenstand" a$(5) = "Speichern" a$(6) = "Beenden" a$(7) = "info" ;/////////////////////////main\\\\\\\\\\\\\\\\\\\\\ Repeat ;menu [0 = Spielen ; 1 = pause/menu] ;----------------------------------; If KeyHit(57) Then menu = menu +1 ; If menu = 2 Then menu = 0 ; ;----------------------------------; If menu = 0 Then Cls Rect 100,100,100,100,1 ElseIf menu = 1 Then menu_y = 0 menu_show() End If Flip Until KeyHit(1) ;--------------------------------------------------- Function menu_show() ;Cls ;würde das hier eingebaut werden, wäre es kein problem(jedoch verschwindet das "spiel") ;der rahmen Color 255,255,255:Rect menu_x-10,menu_y-10,150,(menu_max_index+1)*15,0 For i = menu_start_index To menu_start_index + menu_max_index name$ = a$(i) ;der menu inhalt If wahl = i Then Color 90,120,150:Rect menu_x,menu_y,100,FontHeight() ;"makierkästchen" Color 255,255,255:Text menu_x,menu_y,name$ ;menu inhalt ausgeben menu_y = menu_y +15 ;damit nicht übereinander Next If KeyHit(208) Then wahl = wahl +1 ;das makierkästchen steuern If KeyHit(200) Then wahl = wahl -1 End Function ~Edit~ Das menu mit leer aufrufen ![]() mfg Dottakopf |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
FWeinbehemals "ich" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
AM besten macht du das Menu mit Types da kannst dann nen Field machen das ID ist und dann kanst du ja in der
Code: [AUSKLAPPEN] For m.Menu=Each Menu IF m/ID=Markiertes_Feld Then mach das und das Endif Next mfg ich |
||
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs |
Florian |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] Graphics 800,600,16,2 SetBuffer BackBuffer() ;globals Global menu_start_index = 1,menu_max_index = 7 Global menu_wahl = 1 Global menu_Anzahl = 8 Global menu_x = 450,menu_y=100 Global wahl = 1 menu=1 Timer=CreateTimer(30) ;arrys Dim a$(menu_anzahl) a$(1) = "Charakter" a$(2) = "Fähigkeit" a$(3) = "Ausrüsten" a$(4) = "Gegenstand" a$(5) = "Speichern" a$(6) = "Beenden" a$(7) = "info" ;/////////////////////////main\\\\\\\\\\\\\\\\\\\\\ Repeat Cls ;menu [0 = Spielen ; 1 = pause/menu] ;----------------------------------; If KeyHit(57) Then menu = menu +1 ; If menu = 2 Then menu = 0 ; ;----------------------------------; If menu = 0 Then Rect 100,100,100,100,1 ElseIf menu = 1 Then menu_y = 0 menu_show() End If WaitTimer Timer Flip Until KeyHit(1) ;--------------------------------------------------- Function menu_show() ;Cls ;würde das hier eingebaut werden, wäre es kein problem(jedoch verschwindet das "spiel") ;der rahmen Color 255,255,255:Rect menu_x-10,menu_y-10,150,(menu_max_index+1)*15,0 For i = menu_start_index To menu_start_index + menu_max_index name$ = a$(i) ;der menu inhalt If wahl = i Then Color 90,120,150 Rect menu_x,menu_y,100,FontHeight() ;"makierkästchen" EndIf Color 255,255,255:Text menu_x,menu_y,name$ ;menu inhalt ausgeben menu_y = menu_y +15 ;damit nicht übereinander Next If KeyHit(208) Then wahl = wahl +1 ;das makierkästchen steuern If KeyHit(200) Then wahl = wahl -1 If Wahl=menu_anzahl Then Wahl=1 If Wahl=0 Then Wahl=menu_anzahl-1 End Function |
||
FWeinbehemals "ich" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Florian Das was du gemacht hast wolte er doch grade nicht haben ^^
Also ich habe dir mal nen Beispiel gemacht mit den Types also so müste das gehen. Code: [AUSKLAPPEN] Graphics 800,600,16,2 SetBuffer BackBuffer() ;globals Global menu_start_index = 1,menu_max_index = 7 Global menu_wahl = 1 Global menu_Anzahl = 8 Global menu_x = 450,menu_y=100 Global wahl = 1 ;arrys Dim a$(menu_anzahl) a$(1) = "Charakter" a$(2) = "Fähigkeit" a$(3) = "Ausrüsten" a$(4) = "Gegenstand" a$(5) = "Speichern" a$(6) = "Beenden" a$(7) = "info" Type Menu Field ID End Type For i=1 To 7 m.Menu=New Menu m\id=i Next ;/////////////////////////main\\\\\\\\\\\\\\\\\\\\\ Repeat Cls ;menu [0 = Spielen ; 1 = pause/menu] ;----------------------------------; If KeyHit(57) Then menu = menu +1 ; If menu = 2 Then menu = 0 ; ;----------------------------------; Rect 100,100,100,100,1 If Menu=1 menu_y = 0 menu_show() End If Flip Until KeyHit(1) ;--------------------------------------------------- Function menu_show() ;Cls ;würde das hier eingebaut werden, wäre es kein problem(jedoch verschwindet das "spiel") ;der rahmen Color 255,255,255:Rect menu_x-10,menu_y-10,150,(menu_max_index+1)*15,0 For m.menu=Each menu If m\id=Wahl Then Color 90,120,150 Rect menu_x,(Wahl-1)*15,100,12 EndIf Next For I=1 To 7 Color 255,255,255:Text menu_x,(i-1)*15,a$(i) Next If KeyHit(208) Then wahl = wahl +1 ;das makierkästchen steuern If KeyHit(200) Then wahl = wahl -1 End Function Wenn noch fragen hats dann frag habe das mal nicht weiter Kommentiert also viel spass damit mfg ich |
||
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs |
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
~EDIT ~ hoppla sry genau das meinte ich danke !!!!
Ähm ich möchte das Spiel Pausieren und gleichzeitig ein sich veränderndes Menü anzeigen. Und genau da ist das Paradox drinne ^^. Damit sich da was grafisch verändern kann muss ein cls rein, was dan aber wiederrum mein "eingefrorenes Hintergund " bild löscht. zu "ich" : Des mit den Types, hmm passiert da nicht genau das gleiche ? ~wenn ID feld gleich auswahl dan bemale diesen bereich~ So gehe ich nun in den nächsten bereich wird der alte bereich makiert gelassen, da dazwischen kein cls stattfindet ![]() zu Florian : So was hatte ich es doch eigentlich schon ! Code: [AUSKLAPPEN] Function menu_show() ;Cls ;würde .... (da brauchste nur das ; weglöschen dan ist es das gleiche) Da verschwindet wie bereits gesagt der Hintergrund... Ich möchte aber beides gleichzeitig haben. Menu und "pausiertes Spiel" Das problem ist nur, dass die makierungen nicht stimmen. mfg Dottakopf |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
FWeinbehemals "ich" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also nen Kleinen tip nochmal du must in Jedem Durchlauf der schleife Dein spiel malen sonst geht das nicht auser du wilst eben ne Pause funktion dann must du am besten ne Abfrage machen ob Pause ist und dann kanst du alles zeichenen lassen so wie es im momant ist ohne das sich z.B. die schwerkraft weiter befechnet wird also eingach so
Code: [AUSKLAPPEN] Graphics 800,600,16,2 Spieler=LoadImage("Spieler.bmp") While Not Keyhit(1) If keyhit(200) Then pause=pause+1 if Pause=2 Then Pause=0 If Pause=0 Then posX=Posx+grav Else Text 400,300,"PAUSE",1,1 Endif DrawImage spieler,posx,posy Wend mfg ich |
||
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs |
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke ! Jetzt hats klick gemacht. Ich habs jetzt so geschafft, dass ich nichts umcoden muss, da man einfach die reihenfolge der zeichenbefehle ändern musste ---> i
Code: [AUSKLAPPEN] cls 1) Das was immer zu sehen sein soll ! 2) Bei menu = 0 dann normales Spiel laufen lassen 3 Bei menu = 1 Nur das menu zeigen jetzt klappts reibungslos, auch mit meinem alten code ^^ Trotzdem danke für deine Mühe !! mfg Dottakopf |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group