Hallo,
Die Grafik der TriBase ist klasse. Habe nur nen Celeron 500 und ne einfache GeForce4 MX440 und es macht Spaß immer mehr optisches Gezumpe dazu zu schrauben und trotzdem noch hübsche FPS zu haben !!! Da kann ich Davids System nur loben.
Jetzt habe ich aber mit dem Sound Probleme. Wenn ich PlayAvailableBuffer() auf nem Sound aufrufe stockt das Game kurz (ca. ne halbe Sekunde) dann spielt ers ab. Wenn zu viele Soundbuffer des gleichen Sounds gleichzeitig gestartet werden gibts nen kurzes Soundchaos und das Stocken wird stärker, dann läuft das Game mit den gestarteten Sounds weiter (habe 6 Kanonen mit nem Abschuß-Sound).
Ich habe dann umgestellt, daß jede Kanone ihren eigenen Soundbuffer zugewiesen bekommt und Kanone 1 auch Soundbuffer 1 startet (mit Play(i), hat ein wenig Besserung gebracht.
Komischerweise ist das Stocken weniger, wenn der Sound schon irgendwo läuft (Dauerfeuer). hat die Engine irgendwie Probs einen gerade unbenutzten SOundbuffer zu finden? Kann das mit meiner Soundkarte zusammenhängen (Terratec 5.1)??? Ich krichs nich hin.
Leider kann ich den 3D Algorithmus nicht auf DS3DALG_HRTF_FULL stellen, da der Compiler mir dann unresolved external symbol meldet. (GUID_NULL funzt aber) - Ist das das Problem???
Sound wird mit 3D initialisiert (letzter Parameter TRUE)
ZWEITES PROB:
Habe die Musikcodes aus Breakanoid übernommen (Aber das mp3 durch eigene Mucke ersetzt). habe das dann mal auskommentiert (um die Ballersounds besser zu hören) und nach dem einkommentieren startet die Musik nicht wieder. Jetzt habe ich nach manchen Compilerläufen Musik, manchmal nicht (so im Tageswechsel), ohne daß ich den Code für die Musik anpacke. Wahrscheinlich Spukts in meinem Compi ...
Wäre mal wieder sehr dankbar, wenn das zu beheben wäre???
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
// Sounds laden
for(DWORD s = 0; s < 2; s++)
{
sprintf(acFilename, "Data\\Sound%d.wav", s + 1);
m_apSound[s] = new tbSound;
if(m_apSound[s]->Init(acFilename,
DSBCAPS_STATIC | DSBCAPS_LOCDEFER |
DSBCAPS_CTRL3D | DSBCAPS_CTRLFREQUENCY |
DSBCAPS_MUTE3DATMAXDISTANCE,
DS3DALG_HRTF_FULL,
// GUID_NULL,
12))
{
// Fehler!
TB_ERROR("Fehler beim Laden eines Sounds!", TB_ERROR);
}
m_apSound[s]->SetDistances(20.0f, cMAXVIEW);
}
// Musik laden und gleich abspielen
m_pMusic = new tbMusic;
if(m_pMusic->Init("Data\\Action.mp3"))
{
// Fehler!
TB_ERROR("Fehler beim Laden der Musik!", TB_ERROR);
}
// m_pMusic->Stop();
// m_pMusic->Play(TRUE);
// m_pMusic->SetVolume(-500);
return TB_OK;
|
:kotz: