Sounds mit DirectX abspielen
Aus Spieleprogrammierer-Wiki
(Unterschied zwischen Versionen)
[unmarkierte Version] | [gesichtete Version] |
Lcp9 (Diskussion | Beiträge) (→3.Laden von DirectSound) |
Lcp9 (Diskussion | Beiträge) (→2.Initalisierung von DirectSound) |
||
(8 dazwischenliegende Versionen von einem Benutzer werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | + | ||
==== <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 | + | 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 | + | 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 | + | 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 | + | 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 | + | 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 | + | 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.