Esa es mi duda y no se si tambien pueda preguntar esto aqui mismo o sea en otro tema (si es el caso, favor de decirlo y modifico el tema y abro otro).
Se puede reproducir un sonido que este cargado en otro objeto, por ejemplo:
en un solo objeto persistente cargo todos los sonidos y cuando los ocupe los reproduzco desde el objeto que quiera
Una persona puede equivocarse mil veces pero solo fracasa cuando le echa la culpa a otro por sus errores

pero te conviene cargarlo como se hace normalmente o mejor cargarlo por archivo externo. 
La cosa es que,.... no tengo la menor idea.

http://matuxgames.blogspot.com/

Para verificar si un sonido esta sonando usas:
[gml]
if (sound_isplaying(sonido))
[/gml]
entonces para que se reporduzca una cancion cuando finalize la otra...
[gml]
if (!sound_isplaying(musica_1)) //si NO esta sonando musica_1
sound_play(musica_2);// reproduce musica_2
[/gml]

y...para reproducir un sonido desde otro objeto:
[gml]
sound_play(obj_musicas.musica_1)
[/gml]

Saludos! :)

Cita de: Silver_light en Febrero 21, 2011, 02:45:15 AM
Para verificar si un sonido esta sonando usas:
[gml]
if (sound_isplaying(sonido))
[/gml]
entonces para que se reporduzca una cancion cuando finalize la otra...
[gml]
if (!sound_isplaying(musica_1)) //si NO esta sonando musica_1
sound_play(musica_2);// reproduce musica_2
[/gml]

ya lo intente pero no puedo, no se si estoy haciendo algo mal pero al acabar la cancion no empieza la otra (cosa que ya la he oido como 10 veces) y tampoco entiendo porque pusiste "if (sound_isplaying(musica_1))" se pone en step supongo que arriba de "if (!sound_isplaying(musica_1)) sound_play(musica_2);" pero como le haria para poner mas de 2 canciones


ya pude reproducir la cancion desde otro objeto, gracias :)

creo que pido mucho :-[. Gracias por la ayuda :D
Una persona puede equivocarse mil veces pero solo fracasa cuando le echa la culpa a otro por sus errores

En el evento step unicamente coloca:
[gml]
if (!sound_isplaying(musica_1)) //si NO esta sonando musica_1
sound_play(musica_2);// reproduce musica_2
[/gml]
eso deber?a iniciar la musica_2 cuando termina la musica_1... :/


Necesitas un vector o una ds_list para almacenar los sonidos. Inicias primero las variables en el create
[gml]cur=0
musica[1]=sound0
musica[2]=sound1
musica[3]=sound2
musica[4]=sound3
maxs=4[/gml]
Los sonidos tienen q ser del tipo Reproductor de medios para q el sound_isplaying cumpla bien su rol. Entonces pon?s en step
[gml]if !sound_isplaying(musica[cur]) {cur+=1 if cur>maxs {cur=1} sound_play(musica[cur])}[/gml]
Y listo!
Saludos




Hmm... yo lo har?a as?:

Create:
[gml]cancion[0] = sound0;
cancion[1] = sound1;
cancion[2] = sound2;
// ...
canciones = 3;
actual = 0;

sound_play(cancion[actual]);[/gml]


Y en step:
[gml]if (!sound_isplaying(cancion[actual])){
   actual = (actual + 1) mod canciones;
   sound_play(cancion[actual]);
}[/gml]

Es casi lo mismo que Texic pero me parece m?s organizado.
Adem?s, Texic, tendr?as que usar el ?ndice 0 del array. No estoy seguro, pero GM podr?a tirar un error porque en el primer step hac?s referencia a musica[0], y musica[0] no est? definida. Incluso con tu amada opci?n de tratar las variables no inicializadas como 0 (que deber?as desactivar, no seas vago XD), puede haber un sonido que sea el sonido 0, y si este se est? reproduciendo, sound_isplaying(musica[0]) devolver?a true, y el if no se ejecutar?a hasta que el sonido pare.
:P
Vim.

Peque?o error de programaci?n, me gusta eso de mod canciones. Yo al mod nada m?s los uso para acomodar draw combinados con for




Hasta ahora la forma que me dice Wadk me ha funcionado perfectamente.

Gracias por su ayuda Silver_light, Texic y Wadk :)
Una persona puede equivocarse mil veces pero solo fracasa cuando le echa la culpa a otro por sus errores

Cita de: p34 en Febrero 22, 2011, 12:48:32 AM
gracias a todos por sus respuestas.
Tambien se me ocurrio que con una linea del tiempo las puedo reproducir pero no se si sea lo conveniente
Cualquiera de las soluciones mencionadas en este tema es m?s conveniente. ?Por qu? no us?s una de ellas?
Vim.

si gracias, estoy usando la forma que me dijiste pero si falla tengo lo que me dijo Silver_light o la linea del tiempo como respaldo

:D
Una persona puede equivocarse mil veces pero solo fracasa cuando le echa la culpa a otro por sus errores

cuek yo te iba a responder casi igual pero ya que tienes una respuesta mejor te paso un buen dll para reproducir musica externamente con muy buena definicion ,ademas si tiene error simplemente la cancela por ese instante la cancion ^^ toma espero te sirva a mi me a ayudado mucho es el sin bass dll http://www.vourtsis.com/sindarin/DLLS/index.html

Gracias Sivak por la DLL, actualmente ya esoy usando la forma que me dijo Wadk, pero te lo agradezco de todas formas
Una persona puede equivocarse mil veces pero solo fracasa cuando le echa la culpa a otro por sus errores