Achtung:Noob-Frage (Sounds einmal spielen)

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

sonicfire

Betreff: Achtung:Noob-Frage (Sounds einmal spielen)

BeitragFr, Sep 15, 2006 13:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Servuus! Smile

Ich weiss, das ist ein wenig "noobish" - aber: Ich habe folgendes:

Code: [AUSKLAPPEN]

while not keyhit(1)
     if frame=0 then emitsound(snd1,camera)
     if frame=1 then emitsound(snd1,camera)
     if frame=2 then emitsound(snd1,camera)
wend


So, "Frame" schaltet jede Sekunde aufs näcshte um (0...1...2....0...1...2...0... usw).

Klar, das jetzt der Sound in der Schleife dutzende male abgespielt wird. Problemchen: Will ihn bei jedem Frame-wechsel nur einmal direkt abspielen lassen und dann nicht mehr. *G*

Ich weiss, das ich locker selbst darauf kommen müsste, unter Verwendung von einer Status-Variable oder so ..aber .....im moment habe ich wohl eine kleine Denkblockade.

So, wer kann helfen? Smile Was wäre der einfachste Weg ohne viele Check-Variablen? *hust*
Embarassed

EDIT: Achso und ich bitte um Verzeihung, das wurde garantiert schon x-mal gefragt Laughing
~sonic

Jan_

Ehemaliger Admin

Betreff: Re: Achtung:Noob-Frage (Sounds einmal spielen)

BeitragFr, Sep 15, 2006 13:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

while not keyhit(1)
     if frame=0 and b1=0 then emitsound(snd1,camera):b1=1
     if frame=1 and b2=0 then emitsound(snd1,camera):b2=1
     if frame=2 and b3=0 then emitsound(snd1,camera):b3=1
wend
between angels and insects
 

sonicfire

BeitragFr, Sep 15, 2006 13:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke Jan_ , aber das ändert rein gar nichts? Shocked Confused
~sonic

Schranz0r

BeitragFr, Sep 15, 2006 13:54
Antworten mit Zitat
Benutzer-Profile anzeigen
dann hast du was falsch gemacht, ganz einfach!
Poste mal den ganzen code, bzw. den wichtigen zu deiner Frage.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 

sonicfire

BeitragFr, Sep 15, 2006 14:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay, mein Fehler, eben. Das Problem ist einfach: Der passende Sound sollte ja einfach einmal bei jedem Framewechsel gespielt werden... und dann eben immer und immer wieder nur eben nicht 60 mal pro sekunde Smile (wegen der schleife)

Code: (innerhalb schleife)

Code: [AUSKLAPPEN]

frame=MilliSecs()/1000 Mod 3
EntityTexture tporters\entity,tpstandtex,frame
PositionEntity tporters\sprite,tporters\x,tporters\y+tporters\offset+frame*2,tporters\z

If frame=0 And b1=0 Then EmitSound(snd_tport2,camera):b1=1
If frame=1 And b2=0 Then EmitSound(snd_tport3,camera):b2=1
If frame=2 And b3=0 Then EmitSound(snd_tport4,camera):b3=1


Edit: Aber so kann es doch auch nicht gehen, da ja b1,b2 und b3 wieder zurück auf Null gesetzt werden müssten... hmm...

Quasi:
frame ist 0? dann spiele einmal sound1
frame ist 1? dann spiele einmal sound2
frame ist 2? dann spiele einmal sound3
frame ist wieder 0? dann spiele wieder einmal sound1
usw...
~sonic
 

Dreamora

BeitragFr, Sep 15, 2006 14:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Du sagtest die Sounds sollen 1x abgespielt werden.

Wenn du die Sounds bei jedem Framewechsel startest ist das einzige was du hörst ein knattern. Da müsstest du dann schon ChannelPlaying miteinbeziehen etc (vor allem auch weil du sonst einen schönen Programm Crash haben wirst wegen zuvielen Channels simultan)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

sonicfire

BeitragFr, Sep 15, 2006 14:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Stimmt, mein Fehler, hab mich ein wenig doof ausgedrückt Embarassed

EDIT: Wie soll ich ChannelPlaying mit einbeziehen wenn ich den zurückgegebenen Kanal von EmitSound noch gar nicht kenne? Seufz... hmm...grübel
~sonic
 

sonicfire

BeitragFr, Sep 15, 2006 14:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Ta-Da!! Laughing



Code: [AUSKLAPPEN]

global preframe=1

(...)

Function spielmal()
         If frame=0 And preframe<>frame Then EmitSound(snd_tport2,camera) : preframe=frame
         If frame=1 And preframe<>frame Then EmitSound(snd_tport3,camera) : preframe=frame
         If frame=2 And preframe<>frame Then EmitSound(snd_tport4,camera) : preframe=frame
End Function
~sonic
 

Dreamora

BeitragFr, Sep 15, 2006 14:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie mit einbeziehen: Indem du ihn einer globalen Variable zuweist, wie "CurrentChannel" oder sowas.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group