[GAME]: MINERMON

Proyectos en Desarrollo.

Re: MINERMON

Postby CicTec » Sun Aug 02, 2009 9:29 am

Ok, pues veo algun error por aqui:
Code: Select all
unload_wav(sonido_parado);
sonido_parado=load_wav("C:\archivosminer\parado.wav",0);
canal_3=sound(sonido_parado,256,256);
son_estrella=load_wav("C:\archivosminer\estrella.wav",0);
unload_wav(canal_3);

en primer lugar veo que UNLOAD_WAV(canal_3) esta mal, deberia ser UNLOAD_WAV(son_estrella) quizas, porque con ese error canal_3 seguramente tendra lo mismo ID asignado da LOAD_WAV a sonido_parado, descargandote ese sonido y no son_estrella.

Por segundo, UNLOAD_XXX no es buena forma usarlo sin una condicion anterior asi como STOP_XXX, la forma para no liarte nunca con el audio es poner todas las variables que hacen da ID a -1 por default por ejemplo:
Code: Select all
global
id_sonido;
id_canal;

begin
id_sonido = load_sound(.....);
id_canal = play_sound(id_sonido, ......);

if(id_canal != -1)
  stop_sound(id_canal);
  id_canal = -1;
end
if(id_sonido != -1)
  unload_sound(id_sonido);
  id_sonido = -1;
end

de esa forma si un sonido no se reproduce, simplemente averiguas si tiene un ID correcto asignado
User avatar
CicTec
 
Posts: 16554
Joined: Thu Jul 31, 2008 10:18 pm

Re: MINERMON

Postby Spiderman » Sun Aug 02, 2009 2:37 pm

Ummm... pero aqui lo que yo pretendo es que suene un efecto sonoro cuando cogemos una estrella negra
Code: Select all
unload_wav(sonido_parado);
sonido_parado=load_wav("C:\archivosminer\parado.wav",0);
canal_3=sound(sonido_parado,256,256);


y luego una vez que ha sonado este efecto vuelvo a cargar el efecto sonoro para cuando cogemos una estrella normal y descargo lo que habia metido en el canal_3, que era el efecto de la estrella negra

Code: Select all
son_estrella=load_wav("C:\archivosminer\estrella.wav",0);
unload_wav(canal_3);
User avatar
Spiderman
 
Posts: 761
Joined: Wed Feb 11, 2009 2:49 am

Re: MINERMON

Postby CicTec » Sun Aug 02, 2009 2:46 pm

Si pero repito si tienes ese codigo:
Code: Select all
unload_wav(sonido_parado);
sonido_parado=load_wav("C:\archivosminer\parado.wav",0);
canal_3=sound(sonido_parado,256,256);
son_estrella=load_wav("C:\archivosminer\estrella.wav",0);
unload_wav(canal_3);

tal cual, esta mal, porque pasas a UNLOAD_WAV la variable canal_3 pero eso no es un ID de un WAV, sino de un canal...

Como tienes este codigo, si el primero load_wav asigna a sonido_parado el valor 0, y la funcion sound asigna el canal 0 a canal_3, pasando el ultimo load_wave te descarga el fichero parado.wav si es lo que buscas podria funcionar a veces, pero si hay otros sonidos en ejecucion y a canal_3 se asigna el canal 1, el unload_wav final te descarga estrella.wav, como ves hay algo malo.
User avatar
CicTec
 
Posts: 16554
Joined: Thu Jul 31, 2008 10:18 pm

Re: MINERMON

Postby Spiderman » Sun Aug 02, 2009 2:48 pm

Si, si. Ahora lo entiendo. :blind:
User avatar
Spiderman
 
Posts: 761
Joined: Wed Feb 11, 2009 2:49 am

Re: MINERMON

Postby CicTec » Sun Aug 02, 2009 2:54 pm

jeje, aparte que no se bien porque lo has programado asi, si tienes pocos efectos de sonidos, mejor cargarlos una vez al principio del nivel, cargar y descargar a menudo baja el rendimiento del juego mismo.
User avatar
CicTec
 
Posts: 16554
Joined: Thu Jul 31, 2008 10:18 pm

Re: MINERMON

Postby Spiderman » Sun Aug 02, 2009 4:39 pm

Pues vete a saber porque lo hice así. :P Creo recordar que a mi el Div me daba problemas con la tarjeta de sonido y por eso tenía que hacer cosas raras. Alguna línea de código si que me podía haber ahorrado.
User avatar
Spiderman
 
Posts: 761
Joined: Wed Feb 11, 2009 2:49 am

Previous

Return to Proyectos WIP

Who is online

Users browsing this forum: No registered users and 16 guests