domingo, 1 de abril de 2012

Efectos de Sonido

Carrera de XNA – Capítulo 4 – Artículo 10

Los efectos de sonido y la música de fondo son igual de importantes que los gráficos de un juego. Ayudan al usuario a mantener la concentración y detectar instantes particulares (perdida de puntos, acciones, etc.) que pueden pasar desapercibidos en forma visual.

Comenzaremos en nuestra clase Game1 definiendo 3 campos, 2 para efectos de sonidos y uno para la canción de fondo.

// The sound that is played when a laser is fired
SoundEffect laserSound;

// The sound used when the player or an enemy dies
SoundEffect explosionSound;

// The music played during gameplay
Song gameplayMusic;

 

En nuestro LoadContent cargamos el archivo de música de fondo que está en nuestro proyecto de contenido y los dos archivos con los efectos de sonido, y ejecutamos el método PlayMusic que definiremos a continuación para iniciar la música de fondo.

// Load the music
gameplayMusic = Content.Load<Song>("Sonidos/gameMusic");

// Load the laser and explosion sound effect
laserSound = Content.Load<SoundEffect>("Sonidos/efectoLaser");
explosionSound = Content.Load<SoundEffect>("Sonidos/efectoExplosion");

// Start the music right away
PlayMusic(gameplayMusic);

Creamos el siguiente método PlayMusic para reproducir la canción de fondo en nuestro juego. Como necesitamos que dure a lo largo de la partida, establecemos la propiedad IsRepeating en true.

private void PlayMusic(Song song)
        {
            // Due to the way the MediaPlayer plays music,
            // we have to catch the exception. Music will play when the game is not tethered
            try
            {
                // Play the music
                MediaPlayer.Play(song);

                // Loop the currently playing song
                MediaPlayer.IsRepeating = true;
            }
            catch { }
        }

 

Dentro del método que habíamos definido en artículos anteriores, UpdatePlayer()  usaremos el efecto del laser si detectamos que se disparó un proyectil. Luego de la llamada existente al  AddProjectile colocamos el siguiente código.

// Play the laser sound
laserSound.Play();

Dentro del método UpdateEnemies() agregamos la reproducción del sonido de Explosión, justo debajo de la llamada a AddExplosion.

// Play the explosion sound
explosionSound.Play();

 

Sonidos

Con esto hemos agregado los efectos de sonido y la música de fondo a nuestro Shooter. En el próximo artículo, para finalizar, tendremos que dibujar en pantalla el puntaje.

Descarga la versión actual del proyecto desde:  http://sdrv.ms/JuucYy

1 comentario:

  1. muy bueno pero se supone que para dispara no debe hacer el jugador y no automatico?

    ResponderEliminar