Probleme mit sound
Übersicht

sven123Betreff: Probleme mit sound |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hier der Code!!Code: [AUSKLAPPEN] If MouseDown(1) Then
DrawImage waffemitmü,Fx,Fy-15 soundakstop=1 EndIf ; If soundakstop=1 Then PlaySound schusssound soundakstop=0 EndIf wenn ich mehrmal auf die maustaste drücke dann kommt nur noch so ein gesirre.Ich muss es also so mache das der soun immer ein bischen vertzögert abgespielt wird.Ich habe jetzt zwei ansätze gemacht die beide nicht gingen! ![]() ![]() Habt ihr vieleicht eine Lösung für mein Problem! |
||
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will Fertiges Projekt:Invasion der Heuschrecken |
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
schreib doch mal, wie du es mit deinem eigenen timer machst, eigentlich so: If soundakstop=1 And MilliSecs() Mod 10 Then ...
...es gibt auch den befehl channelplaying, der überprüft, ob ein sound grade abgespielt wird oder nicht... http://www.blitzbase.de/befehl...laying.htm |
||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
sven123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So hab ichs gemacht!Code: [AUSKLAPPEN] temp_time4=1*1.5 time5=MilliSecs() temp2=0 If temp2=1 Then If MilliSecs()-time5>1000 temp_time4=temp_time4-1 time5=MilliSecs() EndIf EndIf If MouseDown(1) Then DrawImage waffemitmü,Fx,Fy-15 soundakstop=1 EndIf ; If soundakstop=1 Then temp2=1 if temp_time4=0 then PlaySound schusssound endif soundakstop=0 EndIf |
||
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will Fertiges Projekt:Invasion der Heuschrecken |
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
machs so:Code: [AUSKLAPPEN] If MouseDown(1) Then
DrawImage waffemitmü,Fx,Fy-15 soundakstop=1 EndIf ; If soundakstop=1 And (MilliSecs() Mod 10) = 0Then PlaySound schusssound soundakstop=0 EndIf bei Mod 10 kann man die 10 auch verändern (erhöhen) wenn immer noch dieses problem existiert |
||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich halte Kryans Code nit für sehr effektiv, im Gegenteil, er kann gewaltig nach hinten los gehen, da mit diesem (millisecs() mod 10) geprüft wird ob volle 100stel Sekunden vorliegen. sollte aus irgendeinem Grund die Dauer der Mainloop etwas ungünstig liegen, kann es sein dass diese Schleife niemals ausgeführt wird.
Prüfe besser mit channelplaying ob der Sound noch läuft und wenn nein erlaubst du ein Neues abspielen. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] If soundakstop=1 And ChannelPlaying(schusssound)=0 Then
PlaySound schusssound soundakstop=0 EndIf Wollt ich ja auch zuerst nehmen, aber für einen eigenen timer wollt ich das andre erstmal vorziehen |
||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
hmmm. auch das wird nicht funktionieren, Kryan,
da Du den Sound nur abspielen läßt wenn er schon gespielt wird. Korrekt wäre ...and not channelplaying(schusssound) then .... MfG EDIT: mir geht es ja im Wesentlichen darum, dass man (sollte man die Möglichkeit dazu besitzen) seine Codes auf Funktion prüfen sollte bevor man sie auf die Menschheit loslässt. Grade das ist bei Deinen Codes aber häufiger nicht der Fall, und der Schaden den Du damit bei Neulingen durch Verwirrung anrichtest überwiegt den Lerneffekt sicher. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
- Zuletzt bearbeitet von BladeRunner am Sa, März 13, 2004 18:09, insgesamt einmal bearbeitet
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
habe gerade eben =0 dazu editiert, aber schon ne minute her! | ||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich würds so machen:
Code: [AUSKLAPPEN] If MouseDown(1)
If MilliSecs()>timer+30 timer=MilliSecs() channel=PlaySound(sound) EndIf EndIf Hat den Vorteil das Du die Sounds etwas überschneiden lassen kannst, was sich bei einem Schnellfeuergewehr besonders cool anhört ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
@BladeRunner: Und was ist, wenn man gerade im Urlaub an einem fremden Pc ohne BlitzBasic ist? (sowie ich) | ||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
@BladeRunner: Und was ist, wenn man gerade im Urlaub an einem fremden Pc ohne BlitzBasic ist? (sowie ich) | ||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann kann man ja schon vorher darauf hinweisen, daß der Code nicht getestet wurde.
Oder man hält sich mit dem Posten zurück, wenn man sich nit ganz sicher ist. Natürlich meine ganz persönliche Meinung. Abgesehen davon hast du sicher viel Urlaub, denn du postest wie schon gesagt recht häufig Codes die noch einer Überprüfung bedurft hätten. Es ist nix dagegen einzuwenden, anderen helfen zu wollen, aber etwas nachdenken schadet auch dann nicht. Gruß BladeRunner |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
war ja auch nicht bös gemeint ![]() zufällig haben onkel und tante hier auch internet ![]() sven, wie hast dich nun entschieden? |
||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
blitzblaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi !
Sorry das ich hier poste, aber ich bin etwas zu blöd für einfache Sachen. Also hier mein Problem: Ich habe ein Button den ich mit If Imageoverlap ansteuer, so nun spielt beim überlappen des Mausebuttons der Sound dazu ab. Dieser wird aber wie oben von Sven123 beschrieben wie ein rrrrrrrrr Soundabgespielt. Nun habe ich deswegen eine Schleife eingebaut und millisecs() eingebunden. Toll, jetzt spielt der Sound angenehm im Rhytmus ab. Zum Hänker nochmal, er soll aber wirklich nur ein einziges mal abgespielt werden. Und dann soll er aufhören, es sei denn, man geht von dem Button runter und wieder rauf, dann soll er wieder nur 1 mal abgespielt werden. 1000 Variationen habe ich ausprobiert, mal mit Channelplaying mal ohne. Ich werde noch irre hier. Sowas aber auch....please help me..... ![]() Gruß der doofe Blitzblaster |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Machs so:
Code: [AUSKLAPPEN] ; Pseudo
If Maus_auf_button If Not playing channel=PlaySound(sound) playing=True Else playing=False EndIf Zitat: Gruß der doofe Blitzblaster Sei nicht so hart zu Dir. Das erledigen wir schon ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
blitzblaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@ Hubsi:
ähm ich habe das jetzt noch nicht ausprobiert, aber soweit ich das sehe, dann spielt er ja den Sound auch immer wieder ab, wenn ich die Mause auf dem Button lasse. Hmm ich werde es aber trotzdem ausprobieren. Wenn das aber gehen sollte, dann gebe ich Dir einen aus. Morgen poste ich ob es gegangen ist. Wenn ja, bekommst Du eine Grafik in 2D oder einen Sound von mir. Oder ein kleines 3D Mesh. Gruß Blitzblaster |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das geht deshalb, weil der der Sound nur gespielt wird wenn playing=False ist. Geht die Maus auf den Button wird playing=True und erst wieder False wenn die Maus den Button wieder verlässt, was Voraussetzung zum spielen des Sounds ist. Gleich noch eine kleine Verbesserung, damit sich die Sounds nicht überschneiden können:
Code: [AUSKLAPPEN] ; Pseudo
If Maus_auf_button If Not playing And Channelplaying(channel)=0 channel=PlaySound(sound) playing=True Else playing=False EndIf |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
4pac |
![]() Antworten mit Zitat ![]() |
---|---|---|
Na, DAS interessiert mich ja auch mal... | ||
blitzblaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@ Hubsi: Leider haut das nicht so wirklich hin.
@ BladeRunner: Danke nochmal für Deine Hilfe. Und hier ist ein kleiner Auszug von dem Code der zum Game Catch the Thief gehört. ;---------------------------------- .buttons notleftbutton = 0 ;Statusvariable fürs Verlassen der Buttons If ImageRectOverlap (mouse,x,y,610,10,340,140) Then ;wenn Überschneidung buttondown = 1 ; ->ist ein Knopf gedrückt notleftbutton = 1 ; ->und noch nicht verlassen End If If ImageRectOverlap (mouse,x,y,610,155,340,140) Then buttondown = 1 notleftbutton = 1 End If If ImageRectOverlap (mouse,x,y,610,300,340,140) Then buttondown = 1 notleftbutton = 1 End If If ImageRectOverlap (mouse,x,y,610,455,340,140) Then buttondown = 1 notleftbutton = 1 End If If ImageRectOverlap (mouse,x,y,610,605,340,140) Then buttondown = 1 notleftbutton = 1 End If If Not notleftbutton Then buttondown=0 ; wenn Knopf verlassen, dann setze Variable zurück If buttondown=True And hasplayed=False Then hasplayed=BeepIt(switch) ; Wenn knopf gedrückt & noch nicht gespielt rufe Spielfunktion auf If buttondown= False Then hasplayed=0 ; wenn Knopf verlassen setze Spielvariable zurück ;------menü buttons----- If ImageRectOverlap (mouse,x,y,610,10,340,140) Then DrawImage button,595,0 If ImageRectOverlap (mouse,x,y,610,155,340,140) Then DrawImage button2,594,154 If ImageRectOverlap (mouse,x,y,610,300,340,140) Then DrawImage button3,594,305 If ImageRectOverlap (mouse,x,y,610,455,340,140) Then DrawImage button4,594,449 If ImageRectOverlap (mouse,x,y,610,605,340,140) Then DrawImage button5,594,598 ;------zeichnet mouse--------- DrawImage mouse,x,y Flip If ImageRectOverlap (mouse,x,y,610,155,340,140) Then MouseHit (1) If ImageRectOverlap (mouse,x,y,610,300,340,140) Then MouseHit (1) If ImageRectOverlap (mouse,x,y,610,455,340,140) Then MouseHit (1) If ImageRectOverlap (mouse,x,y,610,605,340,140) Then MouseHit (1) ; wartet auf den Mouse Befehl---- Wend Wend Function BeepIt%(switch) ; diese Funktion dient als Ersatz für playsound. Sie spielt einen Sound nur wenn er noch nicht am laufen ist. ; kann im Quelltext leicht durch die If-Abfrage ersetzt werden. ; gibt bei Aufruf eine 1 zurück, um Mehrfachabspielen zu verhindern. If Not ChannelPlaying(sw) Then sw=PlaySound (switch) Return 1 End Function |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
![]() ![]() Code: [AUSKLAPPEN] If KeyDown(57)
If playing=0 And ChannelPlaying(channel)=0 channel=PlaySound(sound) playing=True Else playing=False EndIf |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group