Veamos, al comenzar en una room suena una m?sica. En dicha room hay un pueblo y una ruta...y lo que yo quiero hacer es que cuando vaya a ir a dicha ruta (no hay cambio de room porque como digo la ruta y el pueblo est?n en la misma room) la m?sica cambie, y que al volver pase lo mismo...

EDITADO: Mmm no vi el post de manu, weno elije la manera que mas te guste  XD


1. Las musicas deben ser "Normal sound".

Entonces lo que debes hacer es que cuando tu personaje esta entre las cordenadas del pueblo, bajar el volumen de la musica ruta a 0 con la funcion sound_volume(ind,vol) y subir el volumen de la musica pueblo. Cuando este fuera de esas cordenadas, hazes la inversa. Ej:

Room start
[gml]
if room = room1 //nombre de la room
{
sound_loop(musicaruta)
sound_loop(musicapueblo)
sound_volume(musicapueblo,0)
}
[/gml]

Step
[gml]
if room = room1 //nombre de la room
{
if x > 300 and x < 600 //cordenadas del pueblo
{
sound_volume(musicapueblo,1)
sound_volume(musicaruta,0)
}
else
{
sound_volume(musicapueblo,0)
sound_volume(musicaruta,1)
}
}
[/gml]
Noka siempre responde a los temas con 0 respuestas ^^

Puedes usar este c?digo para dejarlo mas personalizado ;)
Haz un nuevo objeto, y en colisi?n con tu protagonista, pon esto
[gml]sound_stop(la musica actual)
sound_play(sonido)
instance_destroy()[/gml]
Ahora pon el objeto en el room, entra a su c?digo, y pon esto
[gml]sonido = nombre del sonido[/gml]
Espero te sirva
Bye! ;D
¡Probando! ¡1, 2!

Cita de: NOKAUBURE en Diciembre 08, 2011, 04:35:53 PM
EDITADO: Mmm no vi el post de manu, weno elije la manera que mas te guste  XD


1. Las musicas deben ser "Normal sound".

Entonces lo que debes hacer es que cuando tu personaje esta entre las cordenadas del pueblo, bajar el volumen de la musica ruta a 0 con la funcion sound_volume(ind,vol) y subir el volumen de la musica pueblo. Cuando este fuera de esas cordenadas, hazes la inversa. Ej:

Room start
[gml]
if room = room1 //nombre de la room
{
sound_loop(musicaruta)
sound_loop(musicapueblo)
sound_volume(musicapueblo,0)
}
[/gml]

Step
[gml]
if room = room1 //nombre de la room
{
if x > 300 and x < 600 //cordenadas del pueblo
{
sound_volume(musicapueblo,1)
sound_volume(musicaruta,0)
}
else
{
sound_volume(musicapueblo,0)
sound_volume(musicaruta,1)
}
}
[/gml]

Realmente con eso los sonidos se estar?an reproduciendo a la vez no? y lo de hacerlo mientras est? entre las coordenadas del pueblo no lo entiendo muy bien el como verlo/calcularlo/mirarlo xD estoy un poco espeso

Si no quieres que se reproduzcan a la vez (ya sea por la targeta de sonido del PC, todo y que de esta forma quedaba mas real ya que la musica empezaba desde cualquier punto envez de desde el principio), pues lo suyo seria juntarlo con el que puso princesita en el post de arriba, y de hecho NO HACE FALTA EL CODIGO DE ROOM START, que tonto soy  :-[


Step
[gml]
if room = room1 //nombre de la room
{
if x > 300 and x < 600 //cordenadas del pueblo
{
sound_loop(musicapueblo)
sound_stop(musicaruta)
}
else
{
sound_stop(musicapueblo)
sound_loop(musicaruta)
}
}
[/gml]

Cordenadas, vas a tu room, y tienes algo asi:

_______[PUEBLO]__________

Imaginate que las ____ es la zona de la ruta. Entonces lo que tienes que hacer es pasar el click sobre los limites del pueblo y apuntar su cordenada X, aparece debajo de la ventana, por ej:



en el codigo que te di, cambia el 300 por el limite izquierdo y 600 por el limite derecho
Noka siempre responde a los temas con 0 respuestas ^^

#5 Diciembre 09, 2011, 12:06:46 PM Ultima modificación: Diciembre 09, 2011, 02:18:13 PM por J-Dek
Cita de: NOKAUBURE en Diciembre 09, 2011, 10:15:37 AM
Si no quieres que se reproduzcan a la vez (ya sea por la targeta de sonido del PC, todo y que de esta forma quedaba mas real ya que la musica empezaba desde cualquier punto envez de desde el principio), pues lo suyo seria juntarlo con el que puso princesita en el post de arriba, y de hecho NO HACE FALTA EL CODIGO DE ROOM START, que tonto soy  :-[


Step
[gml]
if room = room1 //nombre de la room
{
if x > 300 and x < 600 //cordenadas del pueblo
{
sound_loop(musicapueblo)
sound_stop(musicaruta)
}
else
{
sound_stop(musicapueblo)
sound_loop(musicaruta)
}
}
[/gml]

Cordenadas, vas a tu room, y tienes algo asi:

_______[PUEBLO]__________

Imaginate que las ____ es la zona de la ruta. Entonces lo que tienes que hacer es pasar el click sobre los limites del pueblo y apuntar su cordenada X, aparece debajo de la ventana, por ej:



en el codigo que te di, cambia el 300 por el limite izquierdo y 600 por el limite derecho

Pues no s? por qu? no me funciona =/ simplemente el sonido se queda como pillado continuamente...

y la de sound_volume tampoco te servia? porque ese si lo probe y me funcionaba a mi
Noka siempre responde a los temas con 0 respuestas ^^


pues quedate con esa, no le veo problema xD algo hize mal al intentar arreglarte lo de 1 solo sonido a la vez, pero aunque se reproduzcan los 2 a la vez, cuando una musica esta en volumen 0 no da ningun tipo de lag.
Noka siempre responde a los temas con 0 respuestas ^^

El problema es que el codigo esta en el event step y no hay alguna variable que diga que ya esta sonando dicha musica y por lo que se repite infinitamente el inicio de la musica.
usa esto.
//primero verifica si no esta sonando la musica1
//luego verifica a que distancia esta del punto donde deberia cambiar de musica.
if !sound_isplaying(musica1) and point_distance(x,y,300,200)<16
sound_stop(musica2) //detiene la musica2
sound_loop(musica1) //inicia la musica1
//cambia las coordenadas 300 y 200 por la ubicacion del pueblo

Al final he optado por hacer una room para cada cosa, que si no, es un lio pero gracias por la ayuda, me apunto las cosas en un word para cuando me haga falta ;)