3D Sound hört sich im loop abgehackt an

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

mevsmp

Betreff: 3D Sound hört sich im loop abgehackt an

BeitragMi, Jan 06, 2010 18:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, es geht um den Sound, wenn ein panzer das Kanonenrohr bewegt. Dazu benutze ich zwei Sounds, das eine wenn das Rohr sich gerade anfängt zu bewegen, das andere zum loop wenn es in bewegung ist.

Code: [AUSKLAPPEN]
            If kanonen_rohr_is_turning....

               If start_turret=0
                  turret_start_chn=EmitSound(turret_start_snd,tank\mesh)
                  ChannelVolume turret_start_chn ,0.3
                  start_turret=1
                  
               EndIf
               If ChannelPlaying (turret_start_chn)=0 Then ended_start_turret=1
               
               If ended_start_turret=1
                  If ChannelPlaying (turret_move_chn)=0 Then turret_move_chn=EmitSound(turret_move_snd,tank\mesh)
                  ChannelVolume turret_move_chn ,0.3
               EndIf
               
            EndIf
            
            If ChannelPlaying (turret_start_chn)=0 And  ChannelPlaying (turret_move_chn)=0
               start_turret=0
               ended_start_turret=0
            EndIf


Wenn ich den Sound, der im loop spielt mit dem Bearbeitungsprogramm abspiele, hören sich die übergänge sauber an. Im Spiel ist jedoch immer zwischen den loop-vorgängen eine kleine Pause zu hören. Das ganze hört sich dann ziemlich abgehackt an.
Hoffe ihr könnt helfen

Midimaster

BeitragMi, Jan 06, 2010 18:20
Antworten mit Zitat
Benutzer-Profile anzeigen
könnte es so sein?:

du fragst den Zustand "hört man den Drehsound noch?" erst ab, nachdem du ihn wieder aktiviert hättest. Ich schätze mal dann vergehen 16msec (Flip oder Timer) bis diese Funktion wieder aufgerufen wird .Erst dann geht der Sound wieder an.


zum testen stellt du den code um.


gleich mehr...

BlitzBasic: [AUSKLAPPEN]
If kanonen_rohr_is_turning....
If start_turret=0
turret_start_chn=EmitSound(turret_start_snd,tank\mesh)
ChannelVolume turret_start_chn ,0.3
start_turret=1
ElseIf ChannelPlaying (turret_start_chn)=0 Then
ended_start_turret=1
EndIf

If ended_start_turret=1
If ChannelPlaying (turret_move_chn)=0 Then
turret_move_chn=EmitSound(turret_move_snd,tank\mesh)
ChannelVolume turret_move_chn ,0.3
EndIf
EndIf
EndIf
ElseIf ChannelPlaying (turret_start_chn)=0 And ChannelPlaying (turret_move_chn)=0
start_turret=0
ended_start_turret=0
EndIf


Besonders mutig find ichdie 3 Zeilen am Schluss. Dort fragst Du, ob der Dreh-Sound aus ist und folgerst daraus, dass man ihn dann komplett abschalten kann?

Ich denke diese Entscheidung sollte nur getroffen werden, wenn das Rohr nicht mehr dreht, oder?

rctuner

BeitragMi, Jan 06, 2010 18:59
Antworten mit Zitat
Benutzer-Profile anzeigen
hab den code mal so getestet, bei mir ist immer noch eine Pause zu hören..

Zu den letzten drei Zeilen: Dort wird doch nur getestet, ob die Sounds für die Bewegung zu ende sind, damit wenn sie wieder anfagngen, zuerst der Sound für den Start der Bewegung gespielt wird.
[Y[our Film, Game ]M[akers and more [F]un!
www.Master-Entertainment.de.vu

[AMD 6000+ X2 @ 6400+][2GB RAM][NVidia 8800GT 512 MB]

Midimaster

BeitragMi, Jan 06, 2010 19:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Genau das finde ich gefährlich...

Könnte doch sein, dass beide Sounds zufällig in diesem Moment zuende sind, obwohl das Rohr noch dreht. Eigentllich sollte der Reset kommen, "wenn das Rohr nicht mehr dreht".

Hörst Du zwischen Sound1 und Sound 2 ebenso ein Loch?

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMi, Jan 06, 2010 19:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Den Loopsound setzt du mit LoopSound und schaltest nur die Lautstärke ein/aus.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Silver_Knee

BeitragMi, Jan 06, 2010 19:51
Antworten mit Zitat
Benutzer-Profile anzeigen
und zum umschalten PauseChannel1 ResumeChannel2 Dazu müssen halt beide channels gestartet und der Dauerdrehchannel paused sein.
 

mevsmp

BeitragDo, Jan 07, 2010 15:50
Antworten mit Zitat
Benutzer-Profile anzeigen
ich kenne den Befehl loopsound nur wusste garnicht, dass der auch für 3d sounds verwendbar ist! Werds mal ausprobieren, danke.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group