Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Marron121 en Julio 21, 2012, 05:16:11 PM

Título: Saber la room actual(Solucionado)
Publicado por: Marron121 en Julio 21, 2012, 05:16:11 PM
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  :-[?
Título: Re:Saber la room actual
Publicado por: Mgbu en Julio 21, 2012, 05:25:51 PM
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
Título: Re:Saber la room actual
Publicado por: MaanuRP en Julio 22, 2012, 11:49:45 AM
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]
Título: Re:Saber la room actual
Publicado por: elviskelley en Julio 22, 2012, 02:47:18 PM
Lo mejor que podes hacer es que el sonido sea verificado y/o reproducido desde el Creations Code del mismo room
Título: Re:Saber la room actual
Publicado por: Marron121 en Julio 25, 2012, 08:17:29 PM
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 :)
Título: Re:Saber la room actual
Publicado por: 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.
Título: Re:Saber la room actual
Publicado por: Texic en Julio 26, 2012, 07:15:11 AM
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
Título: Re:Saber la room actual
Publicado por: Marron121 en Julio 28, 2012, 07:03:32 PM
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
Título: Re:Saber la room actual
Publicado por: 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
Título: Re:Saber la room actual
Publicado por: Marron121 en Julio 29, 2012, 12:00:15 AM
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 :-[)