menü problem

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

kadaj770

Betreff: menü problem

BeitragDo, Aug 30, 2007 1:33
Antworten mit Zitat
Benutzer-Profile anzeigen
hi,

ich habe ein menü gemacht, dass mit "start" und "quit" versehen ist.
ich will das wenn ich auf start drücke, dass das programm einbisschen übersprungen wird und zum "ingame- modus" wechselt und wenn ich quit drücke sich das programm schließt.

bin schon seit über einer stunde am rumwerkeln aber es gelingt nicht...

ich weiß (glaube Rolling Eyes ) der code ist etwas noobig geschrieben ^^ aber hoffe ihr kommt zurecht.

Code: [AUSKLAPPEN]
Graphics3D 800,600, 16, 2
SetBuffer BackBuffer()
Global  modus = 0 ,x=1   ; 0 = menü modus 1 =  quit,   2 = ingame

; load stuff

hintergrund = LoadImage("startmenü2.bmp")
start= LoadImage("start.bmp")
quit = LoadImage ("quit.bmp")
piep =LoadSound("beep.wav") ; beim start - quit wechsel
wechsel = LoadSound("")  ; beim startdrücken

If modus = 0 Then
menüsound = PlayMusic("main.mp3")
EndIf
; end load stuff




;draw stuff

DrawImage hintergrund ,0,0 ; hintergrund
DrawImage start ,200, 360 ;start



;end draw stuff









; MENÜ
While Not modus = 1             ; hauptprog

If modus = 2 Then Goto sprung
   

If KeyHit(200)   Then             ;wenn cursor hoch...
Cls
x=1
DrawImage hintergrund ,0,0
DrawImage start ,200, 360
PlaySound piep
EndIf




If KeyHit(208)  Then
Cls
x=2
DrawImage hintergrund ,0,0   ;wenn cursor runter...
DrawImage quit,200, 425
PlaySound piep
EndIf



 

If x=2 And KeyHit(28) Then ; quit aktivieren
modus = 1
EndIf



If x=1 And KeyHit(28) Then ;start aktivieren
modus = 2
EndIf






Flip
                        ;hauptprog ende


Wend 
              ; MENÜ ENDE!

.sprung
 
Print "lol"



einige tipps wären sehr nett =P

mfg

Silver_Knee

BeitragDo, Aug 30, 2007 1:59
Antworten mit Zitat
Benutzer-Profile anzeigen
hmmm TIPP:
Code: [AUSKLAPPEN]
menu=1
repeat
if menu
BLABLA
CODE VOM MENÜ
DER BEI nem klick menu=0 macht
UND BEI NEM ANDEREN END
else
BLA BLA SPIEL CODE BOOM BANG
auf escape menu=1
forever
 

kadaj770

BeitragDo, Aug 30, 2007 2:30
Antworten mit Zitat
Benutzer-Profile anzeigen
als anfänger versteh ich solch einen komplexen code nocht nicht Rolling Eyes Laughing

etwas genauer vlt ^.^

Silver_Knee

BeitragDo, Aug 30, 2007 10:38
Antworten mit Zitat
Benutzer-Profile anzeigen
himmel IF benutzt du doch selbst... egal....

So das ist deine Hauptschleife:

Code: [AUSKLAPPEN]
Repeat
...
Forever


darein kommt etwas das immer entweder den menücode oder den gamecode abspielen lässt

Code: [AUSKLAPPEN]
menu=1;wir fangen mit dem menü an. du kannst auch 0 schreiben dann fängt dein spiel direkt ingame an
Repeat
If menu;wenn die variable menu true/1 (drücke es aus wie du willst) ist
  Code Vom menü;das heißt die ganzen menübilder malen und wei halt dein menü aussieht.
  irfendwo fragst du dann ab ob man das spiel starten soll und wenn der player das tut musst du die
  vaiable menu auf 0/false  setzen und zwar irgendwie so:
  if User_sagt_spiel_fängt_an then menu=0;oder eben menu=false
Else;Else heißt "andernfalls" und bezieht sich auf das was bei if steht also wenn die variable nicht 1/true ist
  Hier kommt der code hin en man beim spielen benötigt
  will man aus em spiel heraus musst du die variable menu wieder auf 1/true setzten so zum beispiel:
  if keyhit(1) menu=1
Endif
Forever
 

kadaj770

BeitragDo, Sep 06, 2007 18:12
Antworten mit Zitat
Benutzer-Profile anzeigen
ich wieder...

das menü funktioniert immer nur "auf einer seite" also wenn ich eine zeile mit der andren tausche funktioniert das mit dem starten des menüs und andersrum funktioniert das mit dem schließen -.-

das farbige ist gemeint

Graphics3D 800,600, 16, 2
SetBuffer BackBuffer()
modus = 0 Global x=2 ; 1 = quit, 2 = ingame

; load stuff

hintergrund = LoadImage("startmenü2.bmp")
start= LoadImage("start.bmp")
quit = LoadImage ("quit.bmp")
piep =LoadSound("beep.wav") ; beim start - quit wechsel
wechsel = LoadSound("") ; beim startdrücken

; end load stuff




;draw stuff

DrawImage hintergrund ,0,0 ; hintergrund
DrawImage start ,200, 360 ;start

;end draw stuff




menüsound = PlayMusic("main.mp3")


If modus =0 Then

Repeat

If modus =2 Then
Goto spiel ; MENÜ
ElseIf modus =1
Goto ende
EndIf
; hauptprog


If x=2 And KeyHit(28) Then ;start aktivieren
modus = 2

ElseIf x=3 And KeyHit(28) Then ; quit aktivieren
modus = 1
EndIf

If KeyHit(200) ;wenn cursor hoch...
x=2
Cls
DrawImage hintergrund ,0,0
DrawImage start ,200, 360
PlaySound piep
ElseIf KeyHit(208) Then
Cls
x=3
DrawImage hintergrund ,0,0 ;wenn cursor runter...
DrawImage quit,200, 425
PlaySound piep
EndIf


Flip
Forever
EndIf





; MENÜ ENDE!

.spiel
Print"lol"



.ende



; bitte um hilfe ;x
 

Dreamora

BeitragDo, Sep 06, 2007 18:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Benutz bitte den Code Tag wenn du Code postest, damit du ihn korrekt mit Tabs / Leerschlägen formatieren kannst.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Silver_Knee

BeitragDo, Sep 06, 2007 18:28
Antworten mit Zitat
Benutzer-Profile anzeigen
https://www.blitzforum.de/foru...180#253180

und ersetzte das wort "Mausklick" durch "Tastendruck".

Das basiert beides auf dem selben problem: keyhit&mousehit zeigen immer nur an ob seit dem letzten mal keyhit/mousehit geklickt wurde. Das zweite kehit würde bei dir also nur dann funktionieren wenn der user zwischen(!);

Code: [AUSKLAPPEN]
If x=2 And KeyHit(28) Then ;hier
modus = 2
ElseIf x=3 And KeyHit(28) Then ; und da
modus = 1
EndIf


klickt
 

kadaj770

BeitragFr, Sep 07, 2007 0:36
Antworten mit Zitat
Benutzer-Profile anzeigen
hat sich nix geändert. hmm Sad

(im codetag konnte man nicht farbig und groß schreiben =P)

Silver_Knee

BeitragFr, Sep 07, 2007 13:27
Antworten mit Zitat
Benutzer-Profile anzeigen
klar das war ja auch dein code -.- du sollst ihn so verändern wie im link beschrieben...
 

kadaj770

BeitragSa, Sep 08, 2007 12:23
Antworten mit Zitat
Benutzer-Profile anzeigen
hä ? Oo nachdem ich es so gemacht habe wie im link beschrieben, ging es nicht, dann habe ich diesen beitrag geschrieben und nochmal den code untersucht. ich fand einen fehler und dann gings und dann editierte ich den beitrag aber jetzt ist er wieder nicht editiert ^^

DerHase

BeitragSa, Sep 08, 2007 12:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Kuckt Dir mal unbedingt Select an, das könnte Dir arbeit ersparen und Deinen Code sauberer machen etc. Wink
Play Satyr!

Silver_Knee

BeitragSa, Sep 08, 2007 12:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

kh28=KeyHit(28)
If x=2 And kh28 Then ;start aktivieren
modus = 2
ElseIf x=3 And kh28 Then ; quit aktivieren
modus = 1
EndIf

oder mit select:

Code: [AUSKLAPPEN]
if KeyHit(28)
 select x
 case 2
  modus=2
 case 3
  modus=1
 End Select
endif

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group