Octubre 30, 2013, 05:42:42 PM Ultima modificación: Octubre 30, 2013, 10:37:22 PM por gudy
que tal que tal colegas makeros, bueno esta vez traigo un problemilla, se trata de poner sonido a los enemigos, en este caso se trata de un juego de horda zombie y me gustaria poder colocarle un sonido a los zombies cuando caminan y cuando gimen o gritan para hacerlo mas real, de antemano muchas gracias y espero alguien se apiade de mi... muy bien sigan makeando :GM8:
les dejo una imagen del game

Tenes dos formas de hacerlo.
1) Cargando el archivo de audio directamente en GM.
   Para esta forma cargas el archivo, le asignas el tipo (en lo personal recomiendo del tipo multimedia) y usas esta función:

[gml]sound_play(nombreSonido)
//O si lo haces que se repita siempre...
sound_loop(nombreSonido);[/gml]

2) Cargando el archivo desde un directorio.
    De esta forma podes tener una carpeta con todos los sonidos que utilices y cargarlos:
[gml]zombieSonido = sound_add(working_directory + "/Sonidos/nombreSonido.mp3",0,1)
sound_play(zombieSonido);
// O para hacer que se repita siempre...
sound_loop(zombieSonido);
[/gml]

Si usas la segunda opción tenes que tener en cuenta que para cargar el archivo de audio tenes varias opciones que son la segunda variable de la función (la que está en 0):

0=normal, 1=background, 2=3d, 3=mmplayer

La tercer variable de esa función es para precargar el sonido, estando en 1 se pre carga (o puede tomar valores booleanos, TRUE o FALSE).

Después hay otra opción que es usar alguna DLL pero ya es más complicado y si no vas a hacer un proyecto grande te recomiendo usar las primeras 2 opciones.

ok, probe la primera opcion y queda bien el problema es que el sonido se repite y hacer un efecto de eco muy desagradable, lo coloque en el evento step del obj_zombie cuando el obj_jugador se acerca el zombie debe empezar a gemir pero lo hace repetido aunque ponga solo play, que hago :GM8:

Es que el evento step significa pasos, es decir, por cada paso se ejecuta la acción del step, es un evento cíclico, podrías probar con condicionales o una alarma.

 ;D listo colegas la solucion fue una alarma condicionada asi quedaron los scripts y los eventos:
objeto zombie
event creat
sonidoz=1
event alarm[0]
sonidoz=1
even step

if distance_to_object(obj_jugador)<=120
{
if sonidoz=1
{
sound_play(sound_zombie);alarm[0]=260; sonidoz=0;
}
};
asi no me da el efecto de eco y se escucha mas natural, muy bien gracias Iros, por tus ideas y ayuda... sigan makeando... tengo tambien otra duda y esa la pondre en un nuevo tema acerca de las wave zombies(oleadas zombis).. :GM8: 8)