Mein Spiel gliedert sich in viele Bereiche, die jeweils aus mehreren Räumen bestehen. Für jeden Bereich ist ein anderer Hintergrundsound vorgesehen (beispielsweise Bereich Dorf und Bereich Wald oder gar Kampf-Theme).
Allerdings kann man nahezu alle Bereiche über mehrere Räume betreten und somit müsste ich in all diesen Räumen einen Loopsound-Wechsel beim Betreten schreiben.
Wenn man dann allerdings intern im Bereich herumgeht, wird der Sound immer mittendrin gestoppt und neu abgespielt, obwohl das gar nicht notwendig wäre.
Meine (etwas komplizierte Lösung dafür):
Eine String-Variable mit dem aktuellen Soundnamen speichern.
Bei jedem Raumwechsel diese Variable überprüfen (oder in einem Skript, das andauernd nebenbei läuft, zB main) und nur bei Änderung des Soundes neu abspielen.
Code: Select all
ifnot_string (soundAktuell ; [soundNeu]) {
stoploop ([soundAktuell])
loopsound ([soundNeu])
setstring (soundAktuell; [soundNeu])
}
Wie würdet ihr das Probelm lösen? Gibt es da einfachere Varianten?