Mi juego se guarda con un objeto que usa la función game_save ("guardar.sav") y otro objeto que carga la partida al presionar "P" con la función game_load ("guardar.sav").
El problema:
Cada vez que cargo la partida del juego la música deja de sonar, este vuelve a activarse cuando el jugador va a otra habitación.
El código:
obj_Musica
CREATE:
global.reiniciar_musica = true;
STEP:
if( global.reiniciar_musica )
{
event_perform( ev_other, ev_room_start );
global.reiniciar_musica = false;
}
ROOM STAR:
///Musica de fondo
//Menu
if room=romInicio {audio_sound_gain(snd_Garage,0.9,0); //portada Dura 2:08s
audio_play_sound(snd_Garage,0,1);}else
if room=romHistory {audio_sound_gain(snd_Jupiter_One,0.9,0); //historia Dura 2:27s
audio_play_sound(snd_Jupiter_One,0,1);}else
.................100 códigos de la misma mecánica....................
if room=rom_Templo_Siniestro {audio_sound_gain(snd_Funky_Good_Time,0.7,1); // zona reto 3_3 Dura 1:47s
audio_play_sound(snd_Funky_Good_Time,0,1);}
ROOM END:
audio_stop_all();
Ya hice pruebas y me dicuenta de que usar la variable global.reiniciar_musica no es buena idea, el evento se ejecuta al cargar, pero también se ejecuta después de guardar.
Elimina los eventos Create y Step del objeto música, y agrega esta linea en el objeto que carga el juego
[gml]
game_load( "guardar.sav" );
event_perform_object( obj_Musica, ev_other,ev_room_start );
[/gml]