Meine nexte Frage:Wie erstelle ich ein Menü:?:

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Chester

Betreff: Meine nexte Frage:Wie erstelle ich ein Menü:?:

BeitragDo, Jul 22, 2004 15:02
Antworten mit Zitat
Benutzer-Profile anzeigen
HI@all
Mein 2 thread für heute Laughing
naja......

So das ist diemal mein Problem: Embarassed
Wie kann ich ein Spielmenü erstellen Question
SO das man auf das bild oder so draufklickt und man dann in einem anderen Menü ist. Exclamation


PS: kann man in BB includen Question

Slayer

BeitragDo, Jul 22, 2004 15:17
Antworten mit Zitat
Benutzer-Profile anzeigen
In etwas so:

Code: [AUSKLAPPEN]
Graphics 640,480,16,2
SetBuffer BackBuffer()


Function menu()
FlushKeys
ClsColor 100,10,100
While Not KeyHit(57) ;Space Taste

Text 100,100,"Ich bin ein Menü"
Text 100,130,"Zurück mit Space"
Text 100,150,"Beenden mit Escape"

If KeyHit(1) Then End

Flip:Cls

Wend
FlushKeys
ClsColor 0,0,0
End Function



;-----------------------
While Not a = 1


If KeyHit(57) Then menu()

Text 100,100,"Ich bin die Spieleschleife"
Text 100,130,"Zum Menü mit Space"
Text 100,150,"Beenden im Menü möglich"


Flip:Cls
Wend
;---------------------
AMD2500XP, SB5.1, DX9, 512MB DDR333,
XPPro SP1a,ATI 9800SE 256bit 128MB,B3B, B+ immer die neue Version

Chester

Betreff: aw

BeitragDo, Jul 22, 2004 15:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Und wie kann ich mit der maus das menü steuern?
Und eigentlich verwende ich : Graphics 640, 480, 16, 1

Firstdeathmaker

BeitragDo, Jul 22, 2004 15:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich hab´s in meinem neuesten Projekt so gemacht, dass ich ein Schaltertyp definiert habe, und mir dann darauf meine function´s aufgebaut habe. Im Schalterfeld speichere ich 1. Das Schalterimage, 2. Das Schalterimage welches erscheint wenn der Schalter von der Maus berührt wird, 3. Die Position und 4. einen Befehl, der von meiner Funktion
execute_schalter(befehl$) ausgeführt wird. Also wenn der Schalter "Option" gedrückt wird, den ich vorher mit meiner "createschalter" funktion erstellt habe, wird der Befehl "option" an die Funktion execute_schalter weitergegeben, wodurch dann bestimmte Aktionen passieren.

Code: [AUSKLAPPEN]
Type schalter
   Field image1
   Field image2
   Field pos_x#
   Field pos_y#
   Field befehl$
End Type

Function createschalter(image1$,image2$,pos_x,pos_y,befehl$)
schalter.schalter=New schalter
   schalter\image1=LoadImage("BG/"+image1) ;Das Standartbild vom Schalter
      MaskImage schalter\image1,255,0,255:MidHandle schalter\image1
   schalter\image2=LoadImage("BG/"+image2) ; Das Bild welches angezeigt wird wenn man ihn mit der Maus berührt
      MaskImage schalter\image2,255,0,255:MidHandle schalter\image2
   schalter\pos_x=pos_x
   schalter\pos_y=pos_y
   schalter\befehl=befehl
End Function

Function draw_schalter()
For schalter.schalter=Each schalter
    If ImagesCollide(mouseimage1,Mouse_x,Mouse_y,0,schalter\image1,schalter\pos_x,schalter\pos_y,0)
      DrawImage schalter\image2,schalter\pos_x,schalter\pos_y
      If MouseHit(1) execute_schalter(schalter\befehl)
   Else
      DrawImage schalter\image1,schalter\pos_x,schalter\pos_y
   EndIf
Next
End Function

Function mouse()
Mouse_x=MouseX()
Mouse_y=MouseY()
End Function

Function delete_all_schalter()
For schalter.schalter=Each schalter
   Delete schalter
Next
End Function

Function delete_only_schalter(commando$)
For schalter.schalter=Each schalter
   If schalter\befehl=commando Delete schalter
Next
End Function

Function execute_schalter(befehl$);Hier müssen alle Befehle eigegeben werden welche die Schalter ausführen können!!!
Select befehl$
   Case "start"
      delete_all_schalter()
      createschalter("New.png","New2.png",SCREEN_X/2,SCREEN_Y/8*3,"New_game")
      createschalter("load.png","load2.png",SCREEN_X/2,SCREEN_Y/8*4,"load_game")
      createschalter("back.png","back2.png",SCREEN_X/2,SCREEN_Y/8*5,"back1")
   Case "option"
      delete_all_schalter()
      
      
      createschalter("musik_s.png","musik_s.png",SCREEN_X/8,SCREEN_Y/8*3,"none")
      createschalter("on_sa.png","on_sa.png",SCREEN_X/8+150,SCREEN_Y/8*3,"Musik_on")
      createschalter("off_sa.png","off_sa.png",SCREEN_X/8+350,SCREEN_Y/8*3,"Musik_off")
      
      If Musik=1
         createschalter("X_Knopf_green.png","X_Knopf_green.png",SCREEN_X/8+250,SCREEN_Y/8*3,"Musik_green")
      ElseIf Musik=0
         createschalter("X_Knopf_red.png","X_Knopf_red.png",SCREEN_X/8+250,SCREEN_Y/8*3,"Musik_red")
      EndIf
   
      
      
      createschalter("effekte_s.png","effekte_s.png",SCREEN_X/8,SCREEN_Y/8*4,"none")
      createschalter("on_sa.png","on_sa.png",SCREEN_X/8+190,SCREEN_Y/8*4,"sound_effekte_on")
      createschalter("off_sa.png","off_sa.png",SCREEN_X/8+390,SCREEN_Y/8*4,"sound_effekte_off")
      
      If sound_effekte=1
         createschalter("X_Knopf_green.png","X_Knopf_green.png",SCREEN_X/8+290,SCREEN_Y/8*4,"sound_effekte_green")
      ElseIf sound_effekte=0
         createschalter("X_Knopf_red.png","X_Knopf_red.png",SCREEN_X/8+290,SCREEN_Y/8*4,"sound_effekte_red")
      EndIf
      
      
      
      createschalter("back.png","back2.png",SCREEN_X/2,SCREEN_Y/8*5,"back2")
      
      
   Case "Musik_on"
      Musik=1
      ChannelVolume bg_music,Musik
      delete_only_schalter("Musik_red")
      createschalter("X_Knopf_green.png","X_Knopf_green.png",SCREEN_X/8+250,SCREEN_Y/8*3,"Musik_green")
   Case "Musik_off"
      Musik=0
      ChannelVolume bg_music,Musik
      delete_only_schalter("Musik_green")
      createschalter("X_Knopf_red.png","X_Knopf_red.png",SCREEN_X/8+250,SCREEN_Y/8*3,"Musik_red")

      
   
   Case "sound_effekte_on"
      sound_effekte=1
      ChannelVolume bg_sound_effekt,sound_effekte
      delete_only_schalter("sound_effekte_red")
      createschalter("X_Knopf_green.png","X_Knopf_green.png",SCREEN_X/8+290,SCREEN_Y/8*4,"sound_effekte_green")
   Case "sound_effekte_off"
      sound_effekte=0
      ChannelVolume bg_sound_effekt,sound_effekte
      delete_only_schalter("sound_effekte_green")
      createschalter("X_Knopf_red.png","X_Knopf_red.png",SCREEN_X/8+290,SCREEN_Y/8*4,"sound_effekte_red")   
   
   Case "credits"
      delete_all_schalter()
      createschalter("credits_list.png","credits_list.png",SCREEN_X/2,SCREEN_Y/3*1.1,"none")
      createschalter("back.png","back2.png",SCREEN_X/2,SCREEN_Y/8*7,"back1")      
   Case "exit"
      End
   Case "back1";Erstellt wieder das Hauptmenü
      delete_all_schalter()
      createschalter("start.png","start2.png",SCREEN_X/2,SCREEN_Y/8*3,"start")
      createschalter("option.png","option2.png",SCREEN_X/2,SCREEN_Y/8*4,"option")
      createschalter("credits.png","credits2.png",SCREEN_X/2,SCREEN_Y/8*5,"credits")
      createschalter("exit.png","exit2.png",SCREEN_X/2,SCREEN_Y/8*6,"exit")
      
   Case "back2";Erstellt wieder das Hauptmenü und speichert optionen
      option_datei=WriteFile("data\option.ini")
      WriteLine option_datei,SCREEN_X
      WriteLine option_datei,SCREEN_Y
      WriteLine option_datei,GRAPH_DEEPT
      WriteLine option_datei,GRAPH_MODUS
      WriteLine option_datei,Musik
      WriteLine option_datei,sound_effekte
      WriteLine option_datei,";"
      WriteLine option_datei,"Das erste ist für die Bildschirmbreite"
      WriteLine option_datei,"Das zweite ist für die Bildschirmhöhe"
      WriteLine option_datei,"Das dritte ist für die Grafiktiefe"
      WriteLine option_datei,"Das vierte ist für den Modus (1 Vollbild, 2 full windowed, 3 mini windowed)"
      WriteLine option_datei,"Das fünfte ist für die Musik (0=aus, 1=an)"
      WriteLine option_datei,"Das sechste ist für die Soundeffekte (0=aus, 1=an)"   
      CloseFile option_datei
      delete_all_schalter()
      createschalter("start.png","start2.png",SCREEN_X/2,SCREEN_Y/8*3,"start")
      createschalter("option.png","option2.png",SCREEN_X/2,SCREEN_Y/8*4,"option")
      createschalter("credits.png","credits2.png",SCREEN_X/2,SCREEN_Y/8*5,"credits")
      createschalter("exit.png","exit2.png",SCREEN_X/2,SCREEN_Y/8*6,"exit")
      
   Case "none";Lückenfüller

End Select
End Function




Allerdings würde ich dir empfehlen für deine Spiele ein angepasstes Menü zu erstellen und dir selbst etwas Gedanken zu machen.
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image
  • Zuletzt bearbeitet von Firstdeathmaker am Do, Jul 22, 2004 15:34, insgesamt einmal bearbeitet

Paul

BeitragDo, Jul 22, 2004 15:31
Antworten mit Zitat
Benutzer-Profile anzeigen
ich mahce das (furchtbarerweise) mit ineinandergeschachtelten While-Schleifen:

Code: [AUSKLAPPEN]

While Keyhit(1)=0
cls
  If mousehit(1) and [Buttonkollision] then
    while keyhit(1)=0
     cls
     spiel()
     flip
    wend
   endif
flip
wend



is nicht sonderlich schön, aber funzt

zum Includen: es gibt den Befehl Include "Dateiname"
damit kannst du den Source auf mehrere Datein verteilen. (sehr nützlich)

Paul
Stratocaster black - Roland MicroCube
User posted image
Girgl-World, wer's nich kennt, is' blöd!

Slayer

BeitragDo, Jul 22, 2004 15:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Und wie kann ich mit der maus das menü steuern?


Jo, alles kann ich Dir nicht abnehmen Wink
Es kommt darauf an, gibt verschiedene Möglich keiten, z.b.
Mit imagesoverlap() , dort prüfst Du ob die maus(curser) auf dem Button steht, bzw. ein Collision statt findet, wenn man nun auch noch ne Maustaste
wärend der Collision drückt solll ein wert zurück gegeben werden.
Von mir aus a = 1
Und wenn jetzt die Menüschleife so geschrieben ist:

Code: [AUSKLAPPEN]
While not a = 1

wend

Dann wird die schleife wieder beendet und Du kommst wieder ins spiel.

Zitat:
Und eigentlich verwende ich : Graphics 640, 480, 16, 1



Die 1 am schluss bedeutet das Du es im Vollbild modus laufen läst.
2 = Fenster Modus
3 = Fenster Modus Skaliebar


Hast Du noch nicht die Deutsche Hilfe von TheShadow ??
Dann lade Ssie Dir dringend runter,http://www.blitzbase.de ,
die ist Pflicht Wink und es werden die Befehle sehr gut erklärt.
AMD2500XP, SB5.1, DX9, 512MB DDR333,
XPPro SP1a,ATI 9800SE 256bit 128MB,B3B, B+ immer die neue Version

ViciouS

BeitragDo, Jul 22, 2004 21:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich mus sagen: Ich finde diesen Thread sowieso irgendwie peinlich...

-Wie mache ich ein Menü?
-Und wie kann ich mit der maus das menü steuern?
-Und eigentlich verwende ich : Graphics 640, 480, 16, 1

Wenn du nicht mal in der Lage bist n Menübeospiel auf deine Auflösung umzustellen vergisses lieber n Spiel zu machen oder lerne einfach erstmal...

Sry, aber das wäre wohl sowieso noch von irgendjemandem gekommen
Skaten ist scheisse...
Bilanz: 3 Knochenbrüche in 4 Jahren...
und es werden mehr Laughing

Slayer

BeitragDo, Jul 22, 2004 22:11
Antworten mit Zitat
Benutzer-Profile anzeigen
ViciouS hat Folgendes geschrieben:


Sry, aber das wäre wohl sowieso noch von irgendjemandem gekommen


Jo, da kenn ich einen, ein Verdammt "Heises Bit" Wink

Sorry, konnts mir nicht verkneifen Smile
AMD2500XP, SB5.1, DX9, 512MB DDR333,
XPPro SP1a,ATI 9800SE 256bit 128MB,B3B, B+ immer die neue Version

Chester

BeitragMi, Jul 28, 2004 21:15
Antworten mit Zitat
Benutzer-Profile anzeigen
ViciouS hat Folgendes geschrieben:


-Wie mache ich ein Menü?
-Und wie kann ich mit der maus das menü steuern?
-Und eigentlich verwende ich : Graphics 640, 480, 16, 1


Erstens: Ich weiß was der Befehl Graphics bedeutet Exclamation
Zweitens: Ich kannte den Befehl nicht um ein Bild auf eine Kollision zu prüfen(ich kannte zwar ein paar, aber die wären für den zweck nicht so gut gewesen)
Drittens : Habe ich noch nie in einem Tutorial gelesen wie man ein stinknormales menü macht Exclamation

Hubsi

BeitragMi, Jul 28, 2004 21:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Was kommt als nächstes? 'Wie mache ich ein Spiel zum meinem Menü?' Die Aufgabe des Computers ist es die Befehle auszuführen, Deine Aufgabe ist es selbige in eine logische Reihenfolge zu bringen. Bei Problemen im Detail wird Dir hier sicher gerne geholfen, aber so macht man sich keine Freunde Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Ironstorm

Erstklassiger Contest-Veranstalter

BeitragMi, Jul 28, 2004 21:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde sagen:
Code: [AUSKLAPPEN]

Graphics 640,480
setbuffer backbuffer()
maus=loadimage("maus.png")
startbutton=loadimage("startbutton.png")
repeat
cls
X=mousex()
Y=mouseY()
if imagerectoverlap(maus,X,Y,100,100,100,100) and mousehit(1) then gosub untermenü
drawimage startbutton,100,100
drawimage maus,X,Y
flip
until keydown(1)
end
..:: blackbird design : blackbird photography : Futuro Verde : X-Commander ::..
MacBook | Intel Core 2 Duo 2,1 GHz | 2048 MB RAM | 80 GB HDD | Mac OS X 10.6.2 (Snow Leopard) | Adobe CS4 Design Premium

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group