ent_playsound ( ENTITY*, SOUND*, var volume);
Spielt an der Position der gegebenen Entity einen 3D-Sound ab.
ent_playloop ( ENTITY*, SOUND*, var volume);
Spielt solange einen 3D-Sound in einer Endlosschleife ab bis er explizit gestoppt wird. Die Geräuschquelle bewegt sich mit der Entity mit.
Parameter:
ENTITY* |
Entity-Pointer. |
SOUND* |
Sound-Pointer. |
volume |
Lautstärke in Prozent, zugleich Reichweite in 10-Quant-Einheiten (0..1000) |
Rückgabewert:
Handle des Sounds
Bemerkungen:
-
Die Reichweite (in Quants) eines 3D-Entitysounds beträgt das zehnfache seiner Lautstärke. Um eine sehr große Reichweite zu erzielen kann die Lautstärke kann bis auf 1000 hochgesetzt werden. Der Sound selbst lässt sich natürlich nicht lauter als mit einer Stärke von 100 abspielen. ist die Kamera ausserhalb der Sound-Reichweie, wird der Sound nicht abgespielt, es sei denn, es ist ein Loop-Sound.
- Zum Zeitpunkt da der Sound abgespielt wird, muß die Entity bereits initialisiert sein. Daher kann der Sound frühestens einen Framezyklus nach Ersstellen der Entity abgespielt werden.
- Der Sound wird die Stereo- und 3D-Möglichkeiten der Soundkarte verwenden und in Abhängigkeit von Position und Geschwindigkeit der Entity mit Dopplereffekt abgespielt werden (einstellbar mit doppler_factor).
- Lautstärke und Frequenz des Sounds lassen sich per snd_tune() abstimmen. Der Status des Sounds läßt sich mit snd_playing() überprüfen.
- Der Pointer pdsbs (in avars.h definiert) wird auf den DirectPlay-Sound-Buffer des letzten Aufrufs von ent_playsound / ent_playloop gesetzt und läßt sich zum Manipulieren des Sounds mit DirectPlay-Funktionen verwenden.
- Bis zu 32 Sounds (16 Entity-Sound und 16 normale Sounds) können gleichzeitig abgespielt werden. Werden mehr gespielt, werden die Sounds, die am weitesten von der Kamera entfernt sind, gestoppt.
Beispiel:
SOUND* whosh = "whosh.wav";
var whosh_handle;
...
whosh_handle = ent_playloop(my,whosh,100);
Siehe auch:
snd_play, snd_stop, snd_tune, snd_playing, doppler_factor
► Aktuelle Version Online