10.07.2015 Views

[ebook]Programacion de videojuegos con SDL

[ebook]Programacion de videojuegos con SDL

[ebook]Programacion de videojuegos con SDL

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

P R O G R A M A C I Ó N D E V I D E O J U E G O S C O N S D Lint Mix_Fa<strong>de</strong>InChannel(int channel, Mix_Chunk *chunk, int loops, int ms)int Mix_Fa<strong>de</strong>InChannelTimed(int channel, Mix_Chunk *chunk, int loops, intms, int ticks)La primera función es idéntica a Mix_PlayChannel, <strong>con</strong> la diferencia <strong>de</strong> que elsonido se reproducirá durante los milisegundos indicados en el parámetro ticks.La segunda función también realiza la reproducción <strong>de</strong>l sonido, pero <strong>con</strong> un efecto <strong>de</strong>fa<strong>de</strong> ascen<strong>de</strong>nte, es <strong>de</strong>cir, el volumen <strong>de</strong>l sonido irá aumentando <strong>de</strong>s<strong>de</strong> 0 hasta el quecorresponda al chunk <strong>de</strong> forma gradual. El tiempo que transcurrirá en ese aumento <strong>de</strong>volumen lo indicamos en <strong>con</strong> el parámetro ms. Este tiempo se expresa en milisegundos.Por último, la tercera función no requiere <strong>de</strong>masiada explicación, ya que es la unión <strong>de</strong>las dos anteriores.Mientras se reproduce un sonido, po<strong>de</strong>mos pausarlo momentaneamente o pararlo. Lassiguientes funciones nos permiten <strong>con</strong>trolar la reproducción.void Mix_Pause(int channel)void Mix_Resume(int channel)int Mix_HaltChannel(int channel)int Mix_Fa<strong>de</strong>OutChannel(int channel, int ms)Los nombres <strong>de</strong> las funciones son bastante <strong>de</strong>scriptivos. Todas aceptan comoparámetro un canal. La primera función pone en estado <strong>de</strong> pausa el canal indicado,mientras que la segunda función reanuda su reproducción. Las dos últimas funcionesparan la reproducción <strong>de</strong>l canal, <strong>con</strong> la diferencia <strong>de</strong> que Mix_HaltChannel para lareproducción en seco y Mix_Fa<strong>de</strong>OutChannel hace un efecto <strong>de</strong> fa<strong>de</strong> <strong>con</strong>trario al <strong>de</strong>Mix_Fa<strong>de</strong>InChannel. Esta última función, a<strong>de</strong>más <strong>de</strong>l canal, acepta un segundoparámetro que es el tiempo en milisegundos que durará el efecto <strong>de</strong> fa<strong>de</strong>.A veces nos pue<strong>de</strong> ser útil <strong>con</strong>ocer el estado <strong>de</strong> un canal <strong>con</strong>creto. Las siguientesfunciones nos ayudan en este cometido.int Mix_Playing(int channel)int Mix_Paused(int channel)La primera función <strong>de</strong>volverá 1 si el canal que pasamos como parámetro se estáreproducciendo actualmente y 0 en el caso <strong>de</strong> que esté en silencio. La segunda función<strong>de</strong>volverá 1 si el canal se está reproduciendo y 0 si está en pausa. El siguiente código <strong>de</strong>ejemplo reproduce un sonido y espera a que el usuario pulse una tecla para terminar.71

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!