Musik An / Aus / Doppelt nach INI-Änderungen

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Musik An / Aus / Doppelt nach INI-Änderungen

    Mein Spiel steht kurz vor 1.0 und ich schlage mich immer noch mit einem "alten" Fehler herum. Es geht um das Abspielen von Musik in Verbindung mit Savegame und Änderungen der INI.

    Das Soundsystem ist aktuell BASS, ich hatte aber auch schon Audiere im Spiel und den gleichen Fehler.

    Fehlerbeschreibung

    Ob die Musik läuft, wird über die INI geregelt. Im Menü wird die Musik eingeschaltet. Anschließend geht man in ein Hangar und dann in das erste Level. Vor dem ersten Level wird die Menümusik aus gemacht und in Level 1 ein anderes Lied eingeschaltet. Zurück im Hangar (oder im Menü, wenn man das Spiel abbricht). Das funktioniert bisher perfekt. Zurück im Hangar wird automatisch gespeichert. Ebenso, wenn man im Shop etwas einkauft und dann ins Menü zurück geht. Es wird hierbei nur an den beiden Punkten gespeichert.

    1. Punkt --> Vom Level zurück im Hangar
    2. Punkt --> Vom Hangar zurück ins Menü

    Wenn ich nun eine Savegame habe und in der INI die Musik aus mache und dann die Savegame spiele, funktioniert das auch. Ich habe keine Musik. Gehe ich dann wieder in die INI, stelle die Musik ein, habe ich zwar Musik, aber die Menümusik lässt sich nicht abschalten, wenn ich in das nächste Level gehe. Das bedeutet, dass zwei Lieder gleichzeitig laufen!

    Die globalen Variablen sind alle richtig, dennoch wird die Musik nicht ausgefadet. Der Code dafür sieht aktuell so aus:

    Spoiler anzeigen
    if global.snd = true && global.mmusic = true{
    if fade > 0{
    fade = xvolume - 5;
    xvolume = fade;
    BASS_ChannelSetAttributes(global._testval,0,xvolume,-101);
    alarm[0] = 1 * room_speed / 30;
    }else{
    BASS_ChannelStop(global._testval,0);
    global.mmusic = false;
    alarm[1] = 5 * room_speed / 30
    }
    }else{
    BASS_ChannelStop(global._testval,0);
    global.mmusic = false;
    alarm[1] = 5 * room_speed / 30
    }


    Wie gesagt, unter "normalen" Bedingungen funktioniert das auch perfekt. Nur wenn ich zwischendurch die Musik aus und wieder an mache, gibt es die Probleme. Man sieht auch, dass ich versuche die Musik auf jeden Fall aus zu schalten, egal ob sie an ist oder nicht. :S



    Ich glaube, ich habe endlich eine Lösung gefunden. Die ist zwar nicht schön, aber scheint zu funktionieren.

    Wenn man in das Level zurück geht, wird mit BASS_Stop(); das Soundsystem deaktiviert und im Level gleich wieder mit BASS_Start(); aktiviert. Das ist zwar die harte Methode, aber eine andere habe ich nicht. Das "Problem" ist hier nur, dass die Musik in solchen Fällen nicht schön ausgefadet wird.