Neue Version:
Download:
xgl-stable-0.1.11.zip
Eine der wohl wichtigsten Neuerungen der neuen Version ist der implementierte Sound-Support. Die Benutzung ähnelt dabei der des Rendering-Systems, wobei das Soundsystem über eine zentrale Klasse abläuft. Auch hier wird wieder über Interfaces abstrahiert, man kann also seinen eigenen
Beispielcode für die simple Wiedergabe einer Wave-Datei:
Beispielcode für zweidimensionalen Surround-Sound:
In diesem Fall wird die Soundquelle als folgender Punkte angegeben:
Die dunkelrote Raute stellt dabei die Position der Soundquelle dar, der schwarze Kreis die Schallreichweite und der rote Kreis die Position des Spielers. Je weiter der Spieler von der Soundquelle entfernt ist, desto leiser erscheint einem der Sound, wobei er außerhalb der Schallreichweite nicht mehr wahrnehmbar ist.
Die Implementierung dazu kann man sich gerne anschauen (
github.com/XemioNetwork/GameLi…ary/Sound/SoundManager.cs
Momentan wird für die interne Implementierung auf WPF zurückgegriffen.
Sounds als Loop wiedergeben:
Um Sounds aus der Loop-Wiedergabe zu entfernen, kann die
MfG
Changelog:
- Implemented subscene system
- Implemented render and tick index for sorted scene rendering
- Implemented abstracted sound system
- Implemented support for looped audio tracks
- Implemented surround sound system for 2D games
Download:
xgl-stable-0.1.11.zip
Eine der wohl wichtigsten Neuerungen der neuen Version ist der implementierte Sound-Support. Die Benutzung ähnelt dabei der des Rendering-Systems, wobei das Soundsystem über eine zentrale Klasse abläuft. Auch hier wird wieder über Interfaces abstrahiert, man kann also seinen eigenen
ISoundProvider
implementieren, um z.B. die Soundausgabe über DirectSound o.ä. zu handlen.Beispielcode für die simple Wiedergabe einer Wave-Datei:
Beispielcode für zweidimensionalen Surround-Sound:
In diesem Fall wird die Soundquelle als folgender Punkte angegeben:
Die dunkelrote Raute stellt dabei die Position der Soundquelle dar, der schwarze Kreis die Schallreichweite und der rote Kreis die Position des Spielers. Je weiter der Spieler von der Soundquelle entfernt ist, desto leiser erscheint einem der Sound, wobei er außerhalb der Schallreichweite nicht mehr wahrnehmbar ist.
Die Implementierung dazu kann man sich gerne anschauen (
Locate
-Methode):github.com/XemioNetwork/GameLi…ary/Sound/SoundManager.cs
Momentan wird für die interne Implementierung auf WPF zurückgegriffen.
Sounds als Loop wiedergeben:
Um Sounds aus der Loop-Wiedergabe zu entfernen, kann die
LoopManager.Remove
-Methode verwendet werden. Der LoopManager ist dabei direkt an den Gameloop angebunden.MfG