Soundverzögerung bei BB3d

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Axe

Betreff: Soundverzögerung bei BB3d

BeitragDi, Jun 27, 2006 19:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich habe ein kleines Problem mit dem Sound bei BB3d.
Ich habe bereits einiges in 2d programmiert. Nun bin ich auch 3d umgestiegen.
Jedoch habe ich das Problem, dass die Sounds erst nach einer kurzen Verzögerung ausgegeben haben. Wenn ich denselben Quellcode mit BB2d abspiele tritt das Problem nicht auf. Woran kann das liegen:?:

Ich lade den Sound mit LoadSound und spiele ihn mit PlaySound ab.
Es wird auch nur die Tonasugabe verzögert, nicht auch das gesamte Spiel.
Projekte:
Ping Pong 2D Version 2.1
Weitere Infos: axesite.de

Christoph

BeitragDo, Jun 29, 2006 16:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
...Es wird auch nur die Tonausgabe verzögert, nicht auch das gesamte Spiel...

Du könntest vielleicht mit Delay nach den Befehlen mit Playsound eine Programmverzögerung einleiten, damit Sound und Programmrest wieder zusammenpassen.

Jan_

Ehemaliger Admin

BeitragFr, Jun 30, 2006 10:52
Antworten mit Zitat
Benutzer-Profile anzeigen
hast du die aktuelle version?
between angels and insects

D2006

Administrator

BeitragFr, Jun 30, 2006 12:50
Antworten mit Zitat
Benutzer-Profile anzeigen
~VERSCHOBEN~
Dieser Thread passte nicht in das Forum, in dem er ursprünglich gepostet wurde.


MfG
D2006
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

Axe

Betreff: Version

BeitragFr, Jun 30, 2006 14:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich benutze die Demoversion von BB3d.
Das mit der Pause ist problematisch, da die bewegt Objekte ja angehalten werden müssten. Das sieht dann nicht wirklich gut aus.
Projekte:
Ping Pong 2D Version 2.1
Weitere Infos: axesite.de

Christoph

BeitragFr, Jun 30, 2006 15:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich dachte das ist nur beim Start so. Wenn du mittendrin die Sounds abspielst
und meine Taktik anwendest sieht das ehrlich nicht so gut aus!!! Confused

Axe

BeitragFr, Jun 30, 2006 15:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Verzögerung beim Start (wenn die Sachen in den Speicher geladen werden) ist ja normal. Aber der Fehler passiert wirklich erst dann, wenn die Töne ausgegeben werden.
Projekte:
Ping Pong 2D Version 2.1
Weitere Infos: axesite.de

BladeRunner

Moderator

BeitragFr, Jun 30, 2006 15:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Könntest du den Code mal posten ?
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

Axe

BeitragFr, Jun 30, 2006 16:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Auszug aus dem Quellcode (den ganzen Quellcode will ich nicht freigeben)

Code: [AUSKLAPPEN]

...
;Sounds
Global wallhit=LoadSound("gfx\wallhit.wav")
Global teleport=LoadSound("gfx\teleport.wav")
Global bathit=LoadSound("gfx\bathit.wav")
Global win=LoadSound("gfx\cool.wav")
LoopSound win

If wallhit=0 Then RuntimeError "Sound nicht gefunden"
If teleport=0 Then RuntimeError "Sound nicht gefunden"
If bathit=0 Then RuntimeError "Sound nicht gefunden"
If win=0 Then RuntimeError "Sound nicht gefunden"

...

;Kollisionsabfrage
If xkugel<60 And winkel>90 And winkel<270 Then
   winkel=180-winkel
   channel4=PlaySound (wallhit)
EndIf



Mit den anderen Sounds verfahre ich gleich.
Projekte:
Ping Pong 2D Version 2.1
Weitere Infos: axesite.de

Markus2

BeitragFr, Jun 30, 2006 16:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Vieleicht ist einfach nur leere am Anfang der Wave Datei !?

Axe

BeitragFr, Jun 30, 2006 18:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Das merkwüdige ist dann, dass es in BB2d funktioniert und in 3d nicht (selber Quellcode).
Projekte:
Ping Pong 2D Version 2.1
Weitere Infos: axesite.de

Markus2

BeitragFr, Jun 30, 2006 19:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Idea

If xkugel<60 And winkel>90 And winkel<270 Then
winkel=180-winkel
channel4=PlaySound (wallhit)
EndIf

Kann es sein das PlaySound mehrmals aufgerufen wird
und darum das Sample immer von vorne angespielt wird
bis die Bedingungen nicht mehr zutreffen ?

Axe

BeitragSa, Jul 01, 2006 8:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Abfrage ist so formuliert, dass ein Wiederaufruf nicht sofort möglich ist. Ich habs trotzdem mal ausprobiert und eine If Anweisung ergänzt:
If Not ChannelPlaying(channel4) Then channel4=PlaySound (wallhit)
Aber das Problem besteht weiterhin.
Projekte:
Ping Pong 2D Version 2.1
Weitere Infos: axesite.de

Markus2

BeitragSa, Jul 01, 2006 10:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Versuch mal so :

Wenn dein Objekt in dem Bereich kommt wo ein Ton abgespielt
werden soll setzte ein Flag z.B. Hit=1 wenn Hit=0
Wenn Hit=1 dann spielste den Ton und setzt Hit=2
und wenn es den Rand Bereich verläßt setzt du Hit=0
Vieleicht geht es so besser .
Das Flag dann im Fenster anzeigen .

Das es in BB2D geht wundert mich Confused

Jan_

Ehemaliger Admin

BeitragMo, Jul 03, 2006 13:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Axe hat Folgendes geschrieben:

Code: [AUSKLAPPEN]

;Sounds
Global wallhit=LoadSound("gfx\wallhit.wav")
Global teleport=LoadSound("gfx\teleport.wav")
Global bathit=LoadSound("gfx\bathit.wav")
Global win=LoadSound("gfx\cool.wav")
LoopSound win



Ich hoffe, das ist nicht in der SChleife!
between angels and insects

Axe

BeitragMo, Jul 03, 2006 14:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, sonst würde das Spiel ja garnicht flüssig laufen. Ich habe beim Posten nur den Zwischenteil weggelassen.
Vieleicht kann man das Problem mit den Sounds auch so lösen, dass man im Voraus berechnet, ob eine Kollision stattfinden wird und den Ton dann schon vorher ausgeben, damit er dann zum richtigen Zeitpunkt aus dem Lautsprecher kommt. Das Problem ist dann aber wieder, dass es in der 2d Version ja auch so schon geht, d.h. dort würde der Sound zu früh erklingen.
Projekte:
Ping Pong 2D Version 2.1
Weitere Infos: axesite.de

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group