Audio mit Scripten programmieren ed

Es gibt zwei Audio-Konzepte: Musik und Sound.

Musik ed

Klasse: Music.

Musik spielt im Hintergrund und ist nicht davon abhängig, von wo aus sie gehört wird. Musikdateien können in stereo sein.

Die Dateien dürfen länger sein, da sie beim Abspielen immer nur stückweise geladen werden.

VolumeMusic regelt die allgemeine Musik-Lautstärke.

Erlaubte Formate:

Beispiel:

    Music *m = LoadMusic("ein Lied.ogg")
void main()
    // ein Lied laden
    m.play(true)

    // Lied als Schleife abspielen
    MusicPlay(m, true)
Klasse: Sound.

Sound ed

Sounds sind punktförmige Geräuschquellen innerhalb der 3d-Welt. Sie werden leiser, je weiter der Zuhörer entfernt ist und unterliegen bei Bewegung der Quelle oder des Zuhörers einem Dopplereffekt (werden höher/schneller, wenn sich Quelle und Zuhörer aufeinander zubewegen und tiefer/langsamer, wenn sie sich von einander entfernen). Auch die Blickrichtung des Zuhörers beeinflusst den Klang.

Sound-Dateien dürfen nur in mono sein!

Oder einfacher:

VolumeSounds regelt die allgemeine Sound-Lautstärke.

Erlaubte Formate:

    Sound *engine_sound
Beispiel:
    overwrite void onInit()
// ein Auto als Geräusch-Quelle
class Car : Model
        engine_sound = SoundLoad("wroom.wav")

    overwrite void OnInit()
        engine_sound.play(true)
        // Motoren-Geräusch laden
    overwrite void onDelete()

        // endlos abspielen
        delete(engine_sound)

    overwrite void onIterate()

        // aufräumen nicht vergessen!
        engine_sound.set(pos, vel, 100, 10000, 1, 1)
    overwrite void OnIterate()
void OnIterate(model this)
        // Geräusch platzieren
            EmitSound("honk.wav", pos, vel, 100, 10000, 1, 1, false)

    SoundSetData(this._engine_sound, this.pos, this.vel, 100, 10000, 1, 1)
        // Leertaste -> Hupe
        if GetKeyDown(KeySpace)
            SoundEmit("honk.wav", pos, vel, 100, 10000, 1, 1, false)
        SoundEmit("honk.wav", this.pos, this.vel, 100, 10000, 1, 1, false)