Sounds mit DirectX abspielen

Aus Spieleprogrammierer-Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
[unmarkierte Version][gesichtete Version]
(3.Laden von DirectSound)
(2.Initalisierung von DirectSound)
 
(8 dazwischenliegende Versionen von einem Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
== <big>Sounds mit DirectX abspielen</big> ==
+
 
 
==== <big>1.Voreinstellungen</big> ====
 
==== <big>1.Voreinstellungen</big> ====
 
1.DirectX SDK herunterladen.
 
1.DirectX SDK herunterladen.
 +
 
2.Die Includes <dsound.h> und <mmsystem.h> einfügen.
 
2.Die Includes <dsound.h> und <mmsystem.h> einfügen.
 +
 
3.Die libs "winmm.lib","dsound.lib","dxguid" einfügen
 
3.Die libs "winmm.lib","dsound.lib","dxguid" einfügen
 +
 
(das könnt ihr sowohl in den Eigenschaften des Projekts einstellen, sowohl auch mit #pragma comment(lib,"...") einfügen)
 
(das könnt ihr sowohl in den Eigenschaften des Projekts einstellen, sowohl auch mit #pragma comment(lib,"...") einfügen)
 +
 
4.Eine Klasse erstellen ( am Besten mit einer header- und einer cpp Datei. ) ( Ich nenne sie 'AUdio' )
 
4.Eine Klasse erstellen ( am Besten mit einer header- und einer cpp Datei. ) ( Ich nenne sie 'AUdio' )
  
Zeile 32: Zeile 36:
 
LPDIRECTSOUNDBUFFER dsbSound;</pre>
 
LPDIRECTSOUNDBUFFER dsbSound;</pre>
  
Als erstes wird der Douns erstellt, und es wird abgefragt, ob es erfolgreich war, dewegen auch bool.
+
Als erstes wird der Sound erstellt, und es wird abgefragt, ob es erfolgreich war, dewegen auch bool.
 
Wenn es fehlgeschlagen ist dann wird falsch zurückgegeben, so auch bei der zeiten Abfrage.
 
Wenn es fehlgeschlagen ist dann wird falsch zurückgegeben, so auch bei der zeiten Abfrage.
 
Wenn es erfolgreich war, wird true zurückgegeben.
 
Wenn es erfolgreich war, wird true zurückgegeben.
Zeile 109: Zeile 113:
 
===== <big>4.Abspielen von DirectSound</big> =====
 
===== <big>4.Abspielen von DirectSound</big> =====
  
Als erstes müssen wir unsere Klasse um "void PlayWave();" erweitern.
+
Als erstes müssen wir unsere Klasse um <pre>void PlayWave();</pre> erweitern.
 
Diese Funktion ist sehr kurz und gibt keinen Wert zurück, da die gültigkeit in den vorigen Funktionen abgefragt wird.
 
Diese Funktion ist sehr kurz und gibt keinen Wert zurück, da die gültigkeit in den vorigen Funktionen abgefragt wird.
 
Nun schauen wir uns die Funktion an:
 
Nun schauen wir uns die Funktion an:
Zeile 124: Zeile 128:
  
 
Falls man nicht mehr möchte, dass der Sound abgespielt wird, wird er gestoppt.
 
Falls man nicht mehr möchte, dass der Sound abgespielt wird, wird er gestoppt.
Als erstes ergänzen wir unsere Klasse um "void StopWave()"
+
Als erstes ergänzen wir unsere Klasse um <pre>void StopWave()</pre>
 
Auch diese hat keinen Rückgabewert, da sie vom Typ void ist.
 
Auch diese hat keinen Rückgabewert, da sie vom Typ void ist.
 
Der code sieht folgendermaßen aus:
 
Der code sieht folgendermaßen aus:
Zeile 136: Zeile 140:
  
 
Am Ende des Programms sollte es wieder freigegeben werden.
 
Am Ende des Programms sollte es wieder freigegeben werden.
Dazu ergänzen wir zunächst unsere Klasse um "void ReleaseDSound()".
+
Dazu ergänzen wir zunächst unsere Klasse um <pre>void ReleaseDSound()</pre>.
 
Die Funktion ist folgendermaßen aufgebaut:
 
Die Funktion ist folgendermaßen aufgebaut:
  
Zeile 158: Zeile 162:
 
===== <big>7.Den Sound benutzen</big> =====
 
===== <big>7.Den Sound benutzen</big> =====
  
Nach dem erstellen des Windows Fensters sollte der Sound zunächst initlaisiert werden und dann geladen werden:
+
Nach dem erstellen des Windows Fensters sollte der Sound zunächst initialisiert werden und dann geladen werden:
  
 
<pre>AUdio Sound;
 
<pre>AUdio Sound;
Zeile 172: Zeile 176:
  
 
Die Variable "Sound" sollte global definiert werden, damit man sie auch in anderen Funktionen, als in der Main Funktion benutzt werden kann.
 
Die Variable "Sound" sollte global definiert werden, damit man sie auch in anderen Funktionen, als in der Main Funktion benutzt werden kann.
Jetzt kann man z.B.: Abfragen, ob die Tase 1 gedrückt wurde, wenn ja dann:
+
Jetzt kann man z.B.: Abfragen, ob die Taste 1 gedrückt wurde, wenn ja dann:
  
 
<pre>Sound.PlayWave();</pre>
 
<pre>Sound.PlayWave();</pre>

Aktuelle Version vom 24. Mai 2014, 10:56 Uhr

Klicke hier, um diese Version anzusehen.

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Werkzeuge