Nuevamente y como siempre, bienvenidos a este, su blog XNAExplorer, donde intentamos, de a poco y paulatinamente ir desentrañando las características de este excelente framework de desarrollo que es XNA.
Me disculpo por mi ausencia de casi un mes, obligaciones laborales, académicas y domésticas me han hecho difícil sentarme con calma a escribir en este blog que llevo con tanto cariño.
En el capítulo de hoy escribiré sobre algo que hicimos en la oficina casi jugando con algunos de mis colegas. Habíamos estado conversando respecto a hacer un juego con sonidos onotamopéyicos ordinarios hechos con la boca "tchiúm"(disparo), "pujjjjhh"(explosión), "tu pa tu pa tupa tutu tupa"(Banda sonora), la verdad, lo hicimos, con la grabadora de sonidos de Windows, el microfono incorporado al notebook y hartas ganas de tontear un rato, despues de todo, es un juego, no es un sistema de facturas de una tienda retail, puede ser divertido.
De antemano, agradezco la asesoría a don Marcelo Acosta, Eduardo Ríos y Finnian Fernandez, por enriquecer con su manantial de tonteras el torrente de ideas que tengo.
El agregar audio a un proyecto XNA resulta bastante simple gracias a las herramientas y clases que provee.
Primero debemos, en la carpeta content, la misma donde guardamos los png o si lo desean en otra carpeta dentro de content que haga referencia a los sonidos, agregar los archivos de audio que hemos capturado con nuestra grabadora de sonidos o cualquier otro medio que ustedes hubiesen utilizado.
Luego usaremos una clase llamada SoundEffect que servirá, tal como da a entender su nombre, para nuestros efectos de sonido.
Declararemos, por ejemplo, el efecto de sonido del disparo de esta forma.
Luego, en el LoadContent agregaremos esta línea
Disparo= Content.Load
Si se dan cuenta, usamos el mismo método Content.Load que utilizamos con las texturas. Al referir entre <> la clase SoundEffect le estamos indicando al método Content.Load que lo que estamos cargando es un efecto de sonido y no una imagen.
Cno esto, tenemos ya disponible el sonido dentro de nuestra variable ahora podemos reproducir el sonido asociado, para esto usamos el método Play de la clase SoundEffect.
En cuanto al sonido de fondo, usaremos 2 clases MediaPlayer y Song.
En el LoadContent pondremos:
MediaPlayer.IsRepeating=true; //Cone sto indicamos que el audio se repetirá constantemente
Luego cargaremos nuestro audio de fondo con la siguiente línea:
MediaPlayer.Play(Content.Load
backgroundMusic es el nombre del archivo wav que he dejado como audio de fondo. Como pueden ver, otra vez usamos el nunca bien ponderado método Content.Load pero en esta ocasión con la clase Song
He agregado las siguiente variables globales
bool HaDisparado=false;
bool HaExplotado=true;
en el método FireCannonball setearé, cuando se dispare, la variable HaDisparado en true, de este modo, en l método Draw evalúo y hago lo siguiente
if (HaDisparado)
{
Disparo.Play();
HaDisparado = false;
}
De este modo, cuando se dispara, se ejecuta el sonido de disparo y luego nuevamente se entra al estado de no disparo.
Eso por hoy, como verán no es muy dificil y es bastante divertido.
Saludos a mis colegas, amigos, la gente de GameDev, Microsoft y simples entusiastas de mente inquieta y creatividad infinita que ha estado interesada en este humilde blog.
AH! y un especial saludo a José Carrasco que se ha sumado como diseñador en mi proyecto de título basado en este grandioso framework.
Manuel Gatica
Links:
Una patética muestra de como usar la grabadora de sonidos de windows:
http://www.youtube.com/watch?v=O0RC7djYZ7o
El juego ejecutándose con el sonido de disparo incorporado:
http://www.youtube.com/watch?v=u001fXuaxcw
Hola que tal amigo! He tenido la oportunidad de visitar tu blog despues de descuidar el mio un ratito por falta de tiempo. http://desarrollaxna.blogspot.com/. Y he visto tus comentarios referentes a mi blog. Si Dios quiere voy a introducir nuevos tutoriales incluyendo Videos para q se comprendan mejor los temas. He visto tu interes sobre el tema de XNA y lo que tienes pensado.La verdad tiene rato q ando en busca de programadores con un interes en comun creo q tu tambien lo tienes al igual q yo.
ResponderEliminarTe dejo mi correo para q me puedas contactas y porq no je. Realizar unos cuantos proyectos por hobby. Algunos otros intereses de mi parte son: Blender, C++ con OpenGL. Gusto saludarte!!! y Mi correo es lincoln_xalapa@gmail.com