Bueno,la idea es que,para ahorrar peso en el ejecutable :-[, solo tenga un objeto para las distintas rooms, y que diciendo(con código) si la room actual es X,que suene tal música, y si es Y, que suene otra.
Alguien me puede decir como hacerlo :-[?
if room=<nombre> play_sound...
Intenta no ponerle de nombre a las rooms numeros, si por ejemplo la room del primer nivel se llama 1 vas a tener errores, así que nombralos niv1, nivel1, o algo asi
Claro, todo igual que como te dijo Mgbu. Incapie en lo de los nombres.
Si vas a usar un solo objeto para todas las musicas, te recomiendo un switch, es lo mismo que dijo él, pero el switch es mas "ordenado".
[gml]
switch(room)
{
case Nivel_1: sound_loop(Sound_Nivel_1); break;
case Nivel_2: sound_loop(Sound_Nivel_2); break;
case Nivel_3: sound_loop(Sound_Nivel_3); break;
case Nivel_N: sound_loop(Sound_Nivel_N); break;
}
[/gml]
Lo mejor que podes hacer es que el sonido sea verificado y/o reproducido desde el Creations Code del mismo room
Al final me he decantado por el switch (creo que se dice así XD) porque no se porque,me saltaba error al ponerlo en el creation code de la room :-\. Al final he hecho esto:
sonido1=sound_add("Música\Happyland.wav",0,false);
sonido2=sound_add("Música\Happiness in the forest.wav",0,false);
switch(room)
{
case Fondo1: sound_loop(sonido1); break;
case Fondo2: sound_loop(sonido2); break;
}
Supongo que está bien,pero al poner la room no se eschucha,alguien sabe porque :-\?
PD:Fondo1 y Fondo2 son los nombres de las rooms :)
sonido1=sound_add("Música\Happyland.wav",0,false);
sonido2=sound_add("Música\Happiness in the forest.wav",0,false);
switch(room_get_name(room)){
case Fondo1: sound_loop(sonido1); break;
case Fondo2: sound_loop(sonido2); break;
}
Si los nombres de tus roms son Fondo1 y Fondo2, no te iba a funcionar solamente con colocar room(esto te arroja un valor numerico), con room_get_name(room) rescatas el nombre de la room.
Cita de: Karasuman en Julio 26, 2012, 04:58:05 AM
sonido1=sound_add("Música\Happyland.wav",0,false);
sonido2=sound_add("Música\Happiness in the forest.wav",0,false);
switch(room_get_name(room)){
case Fondo1: sound_loop(sonido1); break;
case Fondo2: sound_loop(sonido2); break;
}
Si los nombres de tus roms son Fondo1 y Fondo2, no te iba a funcionar solamente con colocar room(esto te arroja un valor numerico), con room_get_name(room) rescatas el nombre de la room.
En realidad se estaba comparando el valor numérico que devuelve el nombre del room con el valor devuelto por room (tmb un valor numérico). El código estaba bien...
Probablemente el problema esté en cómo escribiste la ruta hacia el archivo, q creo sería working_directory+"\Música\Happyland.wav", si estás ejecutando desde el gmk va a devolver la ruta del gmk, sino del exe, y si el gmk no está guardado, de la carpeta temporal donde corre el juego... Espero que se entienda xD
PD: Separá la carga del sonido en en create y el resto en step; y poné el objeto como persistente
He intentado las dos cosas,pero ninguna me funciona :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( QUE HAGO MAL!?!?!?!?!?!
Les dejo el link de Dropbox para que vean todo y me ayuden mejor.
https://www.dropbox.com/sh/lf3f9qd4kczax51/lud_oZ-dXF
Hola parece que ya funciona pruebalo, no te cargaba los sonidos por que la carpeta se llama Musica y en sound_add tu la llamabas con acento Música.
Algunos consejos, no uses jamas acentos para nombrar archivos ni tampoco les coloques espacio, eso te puede provocar algunos dolores de cabeza XD.
Modifica lo siguiente: Carpeta Musica: Happiness in the forest.wav: renombralo asi Happiness_in_the_forest
Esto fue lo que modifique:
objeto:Música niveles 1.VS.1
sonido1=sound_add("Musica\Happyland.wav",0,false);
sonido2=sound_add("Musica\Happiness_in_the_forest.wav",0,false);
switch(room_get_name(room))
{
case "Fondo1": sound_loop(sonido1);
break;
case "Fondo2": sound_loop(sonido2);
break;
}
https://www.dropbox.com/s/ri3bd6ybectgtsn/P%C3%ADxeles%20de%20anta%C3%B1o.gmk?dl=1
Cita de: Karasuman en Julio 28, 2012, 10:19:52 PM
Hola parece que ya funciona pruebalo, no te cargaba los sonidos por que la carpeta se llama Musica y en sound_add tu la llamabas con acento Música.
Algunos consejos, no uses jamas acentos para nombrar archivos ni tampoco les coloques espacio, eso te puede provocar algunos dolores de cabeza XD.
Modifica lo siguiente: Carpeta Musica: Happiness in the forest.wav: renombralo asi Happiness_in_the_forest
Esto fue lo que modifique:
objeto:Música niveles 1.VS.1
sonido1=sound_add("Musica\Happyland.wav",0,false);
sonido2=sound_add("Musica\Happiness_in_the_forest.wav",0,false);
switch(room_get_name(room))
{
case "Fondo1": sound_loop(sonido1);
break;
case "Fondo2": sound_loop(sonido2);
break;
}
https://www.dropbox.com/s/ri3bd6ybectgtsn/P%C3%ADxeles%20de%20anta%C3%B1o.gmk?dl=1
Lo he probado y funciona!!!! :D :D :D :D GRACIAS POR LA AYUDA (Y perdonad que no pare de preguntar :-[)