Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: _-Caleb-_ en Marzo 04, 2014, 07:27:40 PM

Título: Trabajar con archivos (De sonido) Externos... no lo termino de comprender.
Publicado por: _-Caleb-_ en Marzo 04, 2014, 07:27:40 PM
Buenas.

A ver, quiero que mi juego tenga una carpeta \Sounds\ donde poner los sonidos y la música, para que al descomprimirlo/instalarlo no estén todos los archivos de sonido en el directorio raiz de la instalación.

La cosa es la siguiente:

He creado una carpeta \Music en mi directorio de trabajo (Donde tengo el proyecto)

La cosa es que no sé cómo cargar esto:

Creo una variable al iniciar el room tal que así: (En el creation Code, no sé por qué va aquí, lo ví en un tuto)

globalvar musicanivel1;
musicanivel1 = sound_add(working_directory + "\Music\L1_Musica.mp3",0,true);


Y en el create del personaje (que se crea con el room, tengo lo siguiente)

audio_play_sound(musicanivel1,10,true);

Y sonar suena, pero me suena otra canción... y si, he comprobado que el archivo sea el que yo quiera.

Entonces, ¿Cuál sería la manera (Correcta) de cargar archivos de música externos?

Lo tengo añadido en Included Files también, tanto el archivo como el directorio (Group)

¡Saludos!

EDITO: Mi primera idea era usar zip_unzip pero si intento usarlo el juego no arranca...

Citar
___________________________________________
Error on load
Unable to find function zip_unzip
Título: Re:Trabajar con archivos (De sonido) Externos... no lo termino de comprender.
Publicado por: jronis en Marzo 05, 2014, 01:45:32 AM
Hola Caleb

Lo haces bien pero hay algo que no entiendo

Citarglobalvar musicanivel1;
musicanivel1 = sound_add(working_directory + "\Music\L1_Musica.mp3",0,true);

Y es esa variable working_directory

Lo lógico es que en la carpeta donde tengas guardado el proyecto, tengas una subcarpeta llamada sounds por ejemplo y ahí guardar los archivos de audio. Luego yo haría lo siguiente.


var musicanivel1; //declaras una variable donde almacenar la ruta del archivo de audio y algunos parámetros

musicanivel1 = sound_add("sounds/L1_Musica.mp3",1,1); //Como primer parámetro le pasas la carpeta y el archivo de audio, luego el kind, y luego el preload

audio_play_music(musicanivel1,1); //El segundo parámetro es el loop (0 = false y 1 = true);

Con eso tiene que sonar.

Saludos

Título: Re:Trabajar con archivos (De sonido) Externos... no lo termino de comprender.
Publicado por: _-Caleb-_ en Marzo 05, 2014, 10:18:50 AM
Cita de: jronis en Marzo 05, 2014, 01:45:32 AM
Hola Caleb

Lo haces bien pero hay algo que no entiendo

Citarglobalvar musicanivel1;
musicanivel1 = sound_add(working_directory + "\Music\L1_Musica.mp3",0,true);

Y es esa variable working_directory

Lo lógico es que en la carpeta donde tengas guardado el proyecto, tengas una subcarpeta llamada sounds por ejemplo y ahí guardar los archivos de audio. Luego yo haría lo siguiente.


var musicanivel1; //declaras una variable donde almacenar la ruta del archivo de audio y algunos parámetros

musicanivel1 = sound_add("sounds/L1_Musica.mp3",1,1); //Como primer parámetro le pasas la carpeta y el archivo de audio, luego el kind, y luego el preload

audio_play_music(musicanivel1,1); //El segundo parámetro es el loop (0 = false y 1 = true);

Con eso tiene que sonar.

Saludos



Buenas.

He usado el working_directory porque imagino que es la variable del directorio de la aplicación, no sabía si gamemaker de entrada usaba esa ruta o había que establecerla, respecto a tu solución, la he añadido en el evento room_start y funciona igual que la mía, la música suena, pero no la que yo quiero que suene....

Podrías explicarme el kind, qué significa? Porque el preload imagino lo que es, pero el kind ni idea :)

A ver si doy con la solución.

¡Saludos!

EDITO: He mirado en el debugger y me sale que la variable musicanivel1 es "Unable to Evaluate", si miro las variables globales (Lo intentaré por ésta vía) me sale valor 0.

EDITO 2: Creo que ya he encontrado el fallo:

CitarWARNING!: This function has been deprecated and will no longer work!

This function will load a sound file from an external source. This file can be either a *.wav or a *.mp3. The last two arguments are a left over from previous versions of GameMaker and can be set to 0 as they have no effect on the function.

NOTE: This functionality is limited to the Standard Version of GameMaker:Studio and above.

NOTE: Depending on the target platform that is chosen you are limited as to where you can save and load files from. See Reference - Files for more information.

NOTE: You should be aware that if you are using this function in your HTML5 target game to load resources from an external server, then, due to XSS protection in browsers, attempts to load resources from across domains can be blocked and may appear to return blank results.

Así que.... algún otro modo? xD

EDITO 3: Si uso el sistema antiguo de sonido (deshabilitándolo en las opciones del juego) puedo exportar a otros sistemas como linux/macos y que funcione? :S