2 weitere Probleme(Menü und Musik)

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

azureuz

Betreff: 2 weitere Probleme(Menü und Musik)

BeitragDo, Jun 30, 2005 17:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich habe mal wieder ein Problem. Und zwar:

Die Musik(chnBackround) soll er nur abspielen, wenn ich im normalen Hauptmenü bin. Mit einer If-abfrage habe ich es nicht hinbekommen.

Wenn ich auf "Start Game"(isn BIld) klicke, soll er zur Funktion "startgame()" wechseln. Macht er aber nicht. Hier mal der komplette Code:

BlitzBasic: [AUSKLAPPEN]
Graphics 650,350,32,2
SetBuffer BackBuffer()

AppTitle \"NoName\"

Global autofrm=0
Global autox=250
Global autoy=295
Global streckex=0
Global streckey=0
Global menue_anzeige=0
Global wagenid=1
Global streckenid=0
Global zeit=0
Global geschwindigkeit=0
Global musik=1

Global name=LoadImage(\"Bilder/Sonstiges/noname.png\")
Global auto=LoadAnimImage(\"Bilder/Autos/civic/civic.png\", 159,46,0,6)
Global auto2=LoadAnimImage(\"Bilder/Autos/holdon/holdon.png\", 161,51,0,4)
Global strecke1=LoadImage(\"Bilder/Strecken/hasjasu/hasjasu.png\")

Const state_menu=0
Const state_startgame=1
Const state_quit=2
Const state_optionen=3
Const state_gallery=4
Const state_credits=5
Global gamestate=state_menu

Global werbung=LoadImage(\"Bilder/Sonstiges/werbung.png\")
Global logo=LoadImage(\"Bilder/Sonstiges/ownlogo.png\")
Global prebg=LoadImage(\"Bilder/Sonstiges/prebg.png\")
Global startgame=LoadImage(\"Bilder/Sonstiges/startgame.png\")
Global optionen=LoadImage(\"Bilder/Sonstiges/optionen.png\")
Global gallery=LoadImage(\"Bilder/Sonstiges/gallery.png\")
Global credits=LoadImage(\"Bilder/Sonstiges/credits.png\")
Global beenden=LoadImage(\"Bilder/Sonstiges/beenden.png\")
Global chnBackground=PlayMusic(\"Musik\wannarideremix.mp3\")

Function menu()
Include \"steuerung.bb\"
Include \"hasjasu.bb\"
Include \"civic.bb\"
Include \"holdon.bb\"

If streckex=-650 Then
streckex=0
End If
streckex=streckex-1
DrawImage name, 160, 10
DrawBlock werbung, 5, 275
DrawBlock logo, 580, 280

Text 5,70,\"WagenID:\"+wagenid
Text 5,85, \"Autoname:\"+autoname$
Text 5,100, \"Frame:\"+autofrm
Text 5,130, \"StreckenID:\"+streckenid
Text 5,145, \"Streckenname:\"+streckenname$
Text 5,170, \"MausX:\"+MouseX()
Text 5,185, \"MausY:\"+MouseY()

DrawImage startgame, 650/2-37,350/2-30
DrawImage optionen, 650/2-30,350/2-15
DrawImage gallery, 650/2-25,350/2+0
DrawImage credits, 650/2-22,350/2+15
DrawImage beenden, 650/2-26,350/2+30

If MouseHit(1)
If RectsOverlap (MouseX(),MouseY,1,1,138,145,88,14) Then
gamestate=state_startgame
Print \"FUNKTIONIERT\"
End If
End If

End Function

Function startgame()
Cls
End Function

Function quit()

End Function

Function optionen()

End Function

Function gallery()

End Function

Function credits()

End Function

While Not KeyHit(1)

Select gamestate
Case state_menu
menu()
Case state_startgame
startgame()
Case state_quit
End
Case state_optionen
optionen()
Case state_gallery
gallery()
Case state_credits
credits()

End Select
Flip 0
Cls
Wend
...am 11. September 2001 starben 30.000 Kinder weil sie kein Essen hatten...

Artemis

BeitragDo, Jun 30, 2005 17:20
Antworten mit Zitat
Benutzer-Profile anzeigen
ich weiß net ob mit ql:playmusic das ql:pausechannel und ql:resumechannel geht aber mit channel = ql:PlaySound müsste es so funktionieren!
 

azureuz

BeitragDo, Jun 30, 2005 18:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich weiß gerade echt nicht wie du das meinst.
...am 11. September 2001 starben 30.000 Kinder weil sie kein Essen hatten...

Artemis

BeitragDo, Jun 30, 2005 18:32
Antworten mit Zitat
Benutzer-Profile anzeigen
deine erste aussage war:azureuz hat Folgendes geschrieben:
Die Musik(chnBackround) soll er nur abspielen, wenn ich im normalen Hauptmenü bin. Mit einer If-abfrage habe ich es nicht hinbekommen.
 

azureuz

BeitragDo, Jun 30, 2005 18:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja. Und deine Befehle bringen mich nicht weiter. Damit kann man nichts anfangen.
...am 11. September 2001 starben 30.000 Kinder weil sie kein Essen hatten...
 

Michi

BeitragDo, Jun 30, 2005 19:08
Antworten mit Zitat
Benutzer-Profile anzeigen
OH:
www.blitzbase.com
Aber..Wozu soll er gut sein???
IBM-Ingeneur über die Idee des Mikroprozessors, 1968
Code: [AUSKLAPPEN]

   __
<_/__\_> <--- die Wayne-Zeichnung
 

azureuz

BeitragDo, Jun 30, 2005 19:40
Antworten mit Zitat
Benutzer-Profile anzeigen
die onlinehilfe hab ich selber...die befehle bringen mich trotzdem nicht weiter...kurz: sie bringen nichts!

ich hab doch geschrieben das die musik funktioniert....nur will ich sagen wann sie wo abgespielt werden soll!
...am 11. September 2001 starben 30.000 Kinder weil sie kein Essen hatten...

Artemis

BeitragDo, Jun 30, 2005 19:50
Antworten mit Zitat
Benutzer-Profile anzeigen
ql:channelplaying
 

Michi

BeitragDo, Jun 30, 2005 20:03
Antworten mit Zitat
Benutzer-Profile anzeigen
also erstmal:
Der Befehl heißt MouseY() (klammern nicht vergessen!)
zweitens:
Include einer datei funktioniert nur einmal!
Code: [AUSKLAPPEN]
Include "steuerung.bb"
Include "hasjasu.bb"
Include "civic.bb"
Include "holdon.bb"

in einer schleife geht also schon mal nicht. Der Befehl ist dafür gedacht, ein oder mehrere Functions aus einer anderen Datei in das Programm zu laden.

und drittens:
Du startest die Musik am anfang (am besten mit Loadsound und playsound; vom anfang bist du ja im Menü) wenn du in den anderen Modus wechselst, stoppst du sie (mit StopChannel). Später, wenn du wieder ins Menu kommst, startest du sie wieder mit Playsound.
Also in etwa so:

Code: [AUSKLAPPEN]
...

Global chnBackground=LoadSound("Musik\wannarideremix.mp3")
Global Hintergrundmusik=PlaySound(chnBackground)

...

Function menu()
...

If MouseHit(1)
   If RectsOverlap (MouseX(),MouseY(),1,1,138,145,88,14) Then
      gamestate=state_startgame
      Print "FUNKTIONIERT"
      StopChannel Hintergrundmusik
   End If
End If

End Function

...
Aber..Wozu soll er gut sein???
IBM-Ingeneur über die Idee des Mikroprozessors, 1968
Code: [AUSKLAPPEN]

   __
<_/__\_> <--- die Wayne-Zeichnung
 

azureuz

BeitragDo, Jun 30, 2005 20:43
Antworten mit Zitat
Benutzer-Profile anzeigen
1. oh..hab ich übersehen. geht aber trotzdem nicht :/

2. wenn ich die include nicht da lade, lädt er sie garnicht!

3. geht auch nicht. dann sagt er "sound nicht gefunden". habs anders gelösrt..ohne das playsound.... geht nun doch ^^

danke.

jetzt brauch ich nurnoch hilfe mit dem menü.
...am 11. September 2001 starben 30.000 Kinder weil sie kein Essen hatten...
 

Michi

BeitragDo, Jun 30, 2005 21:46
Antworten mit Zitat
Benutzer-Profile anzeigen
ohne zu wissen was in den includes drinsteht, wird dir wohl keiner helfen können...
Aber..Wozu soll er gut sein???
IBM-Ingeneur über die Idee des Mikroprozessors, 1968
Code: [AUSKLAPPEN]

   __
<_/__\_> <--- die Wayne-Zeichnung
 

azureuz

BeitragDo, Jun 30, 2005 22:01
Antworten mit Zitat
Benutzer-Profile anzeigen
hatte sie in dem anderen thread gepostet, moment:

civic:
BlitzBasic: [AUSKLAPPEN]
If wagenid=0 Then
autoname=HondaCivic

MaskImage auto1,0,0,255
DrawImage auto1, autox, autoy, auto1frm
End If


hasjasu:
BlitzBasic: [AUSKLAPPEN]
If streckenid=0 Then
streckenname=Hasjasu

DrawImage strecke1, streckex, streckey
End If


holdon:
BlitzBasic: [AUSKLAPPEN]
If wagenid=1 Then
autoname=HoldonCommodore

MaskImage auto2,0,0,255
DrawImage auto2, autox, autoy, auto2frm
End If


steuerung:
BlitzBasic: [AUSKLAPPEN]
If KeyDown(205) Then
streckex=streckex-5
End If

If KeyDown(2) Then
wagenid=wagenid=0
End If

If KeyDown(3) Then
wagenid=wagenid=1
End If


Im Skyline etc. ist das gleiche...
...am 11. September 2001 starben 30.000 Kinder weil sie kein Essen hatten...

Artemis

BeitragFr, Jul 01, 2005 15:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast das mit dem include falsch verstanden!!
Dies ist nur dazu da um Funktionen, Variablen oder Types ins Programm einzubinden, keine normalen codeausschnitte:
Hier mal ein Beispiel wie du es gemacht hast:
Main.bb
BlitzBasic: [AUSKLAPPEN]

Include \"Sub.bb\"
Repeat

Until KeyHit(1)

Sub.bbBlitzBasic: [AUSKLAPPEN]

If KeyDown(2) Then Print \"LALA\"


Dieses CodeTeil wird aber nur einmal am anfang ausgeführt, da das vollständig kompilierte programm dann so aussieht:
BlitzBasic: [AUSKLAPPEN]

If KeyDown(2) Then Print \"LALA\"
Repeat
Until KeyHit(1)

Auch deine erste Idee den immer wieder zu includen geht nicht.

Um das so zu machen, dass es geht müsstes du deine unterprogramme alle in eine function packen, und diese dann aufrufen.
 

azureuz

BeitragFr, Jul 01, 2005 16:44
Antworten mit Zitat
Benutzer-Profile anzeigen
gut, funktioniert. aber nun habe ich das problem, das er mir nicht mehr sagt wie das auto heißt etc.!

hier mal mein code(es geht um den civic!!!):

BlitzBasic: [AUSKLAPPEN]
Graphics 650,350,32,2
SetBuffer BackBuffer()

AppTitle \"NoName\"

Global autofrm=0
Global autox=250
Global autoy=295
Global streckex=0
Global streckey=0
Global menue_anzeige=0
Global wagenid=0
Global streckenid=0
Global zeit=0
Global geschwindigkeit=0

Global name=LoadImage(\"Bilder/Sonstiges/noname.png\")
Global auto=LoadAnimImage(\"Bilder/Autos/civic/civic.png\", 156,51,0,6)
Global auto2=LoadAnimImage(\"Bilder/Autos/holdon/holdon.png\", 161,51,0,4)
Global auto3=LoadAnimImage(\"Bilder/Autos/skyline/skyline.png\", 166,51,0,1)
Global auto4=LoadAnimImage(\"Bilder/Autos/caprice/caprice.png\", 166,51,0,1)
Global auto5=LoadAnimImage(\"Bilder/Autos/mondeo/mondeo.png\", 166,51,0,1)

Global strecke1=LoadImage(\"Bilder/Strecken/hasjasu/hasjasu.png\")
Global strecke2=LoadImage(\"Bilder/Strecken/garage/garage.png\")

Global werbung=LoadImage(\"Bilder/Sonstiges/werbung.png\")
Global logo=LoadImage(\"Bilder/Sonstiges/ownlogo.png\")
Global prebg=LoadImage(\"Bilder/Sonstiges/prebg.png\")
Global startgame=LoadImage(\"Bilder/Sonstiges/startgame.png\")
Global optionen=LoadImage(\"Bilder/Sonstiges/optionen.png\")
Global gallery=LoadImage(\"Bilder/Sonstiges/gallery.png\")
Global credits=LoadImage(\"Bilder/Sonstiges/credits.png\")
Global beenden=LoadImage(\"Bilder/Sonstiges/beenden.png\")

Global chnBackground=PlayMusic(\"Musik\wannarideremix.mp3\")

Const state_menu= 0
Const state_startgame= 1
Const state_quit= 2
Const state_optionen= 3
Const state_gallery= 4
Const state_credits= 5
Const state_autowahl= 6
Global gamestate=state_startgame

Include \"civic.bb\" ;include der funktion

Repeat

Select gamestate
Case state_menu
menu()
Case state_startgame
startgame()
Case state_quit
End
Case state_optionen
optionen()
Case state_gallery
gallery()
Case state_credits
credits()
Case state_autowahl
autowahl()
End Select

Until gamestate = state_quit

Function menu()
Repeat
Include \"steuerung.bb\"
Include \"hasjasu.bb\"
Include \"garage.bb\"
Include \"holdon.bb\"
Include \"skyline.bb\"
Include \"caprice.bb\"
Include \"mondeo.bb\"
DrawImage name, 160, 10
DrawBlock werbung, 5, 275
DrawBlock logo, 580, 280

DrawImage startgame, 650/2-37,350/2-30
DrawImage optionen, 650/2-30,350/2-15
DrawImage gallery, 650/2-25,350/2+0
DrawImage credits, 650/2-22,350/2+15
DrawImage beenden, 650/2-26,350/2+30

Local temp_zustand = gamestate

FlushKeys()
FlushMouse()

civic() ;laden der funktion

Text 5,70,\"WagenID:\"+wagenid
Text 5,85, \"Autoname:\"+autoname$
Text 5,100, \"Frame:\"+autofrm
Text 5,130, \"StreckenID:\"+streckenid
Text 5,145, \"Streckenname:\"+streckenname$
Text 5,170, \"MausX:\"+MouseX()
Text 5,185, \"MausY:\"+MouseY()

Flip
Cls
Until gamestate<>temp_zustand
End Function

Function startgame()
Repeat
Include \"steuerung.bb\"
Include \"hasjasu.bb\"
Include \"garage.bb\"
Include \"civic.bb\"
Include \"holdon.bb\"
Include \"skyline.bb\"
Include \"caprice.bb\"
Include \"mondeo.bb\"
DrawImage name, 160, 10
DrawBlock werbung, 5, 275
DrawBlock logo, 580, 280

DrawImage startgame, 650/2-37,350/2-30
DrawImage optionen, 650/2-30,350/2-15
DrawImage gallery, 650/2-25,350/2+0
DrawImage credits, 650/2-22,350/2+15
DrawImage beenden, 650/2-26,350/2+30

Local temp_zustand = gamestate

FlushKeys()
FlushMouse()

civic() ;laden der funktion

Text 5,70,\"WagenID:\"+wagenid
Text 5,85, \"Autoname:\"+autoname$
Text 5,100, \"Frame:\"+autofrm
Text 5,130, \"StreckenID:\"+streckenid
Text 5,145, \"Streckenname:\"+streckenname$
Text 5,170, \"MausX:\"+MouseX()
Text 5,185, \"MausY:\"+MouseY()

Flip
Cls
Until gamestate<>temp_zustand
End Function

Function quit()
End
End Function

Function optionen()

End Function

Function gallery()

End Function

Function credits()

End Function

Function autowahl()

Local temp_zustand = gamestate

FlushKeys()
FlushMouse()

streckenid=0

Repeat

Until gamestate>temp_zustand

End Function


FUnktion civic():

BlitzBasic: [AUSKLAPPEN]
Function civic()
If wagenid=0 Then
autoname$=\"Honda Civic\"

MaskImage auto,0,0,255
DrawImage auto, autox, autoy, autofrm
End If
End Function
...am 11. September 2001 starben 30.000 Kinder weil sie kein Essen hatten...
 

Apocalyptic

BeitragSa, Jul 02, 2005 8:32
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
Global AutoName$


Und du hast in deiner Hauptschleife immer noch Includes... (Local und MaskImage gehören auch nicht in eine Schleife)
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group