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 LMúsicaComo dijimos anteriormente, <strong>SDL</strong>_mixer reserva un canal exclusivo para la música.A<strong>de</strong>más, nos da soporte a múltiples formatos. Para cargar un archivo <strong>de</strong> músicautilizamos la función Mix_LoadMUS.Mix_Music *Mix_LoadMUS(<strong>con</strong>st char *file)Mediante el parámetro file, especificamos el archivo <strong>de</strong> música que queremoscargar. La función nos <strong>de</strong>vuelve un puntero <strong>de</strong> tipo Mix_Music, que es parecido aMix_Chunk, pero que nos permite almacenar música. Para liberar los recursos utilizamosla siguiente función.void Mix_FreeMusic(Mix_Music)La reproducción <strong>de</strong> la musica pue<strong>de</strong> llevarse a cabo mediante alguna <strong>de</strong> las dosfunciones siguientes.int Mix_PlayMusic(Mix_Music *music, int loops)int Mix_Fa<strong>de</strong>InMusic(Mix_Music *music, int loops, int ms)Estas dos funciones son muy similares a Mix_PlayChannel yMix_Fa<strong>de</strong>InChannel. De hecho, la única diferencia es que el primer parámetro es unamúsica en lugar <strong>de</strong> un sonido. El resto <strong>de</strong> parámetros es exactamente igual.El volumen <strong>de</strong> la música se pue<strong>de</strong> establecer <strong>con</strong> la función Mix_VolumeMusic.int Mix_VolumeMusic(int volume)El rango válido para el volumen va <strong>de</strong> 0 a 128.El <strong>con</strong>trol <strong>de</strong> la música pue<strong>de</strong> llevarse a cabo <strong>con</strong> las funciones siguientes.void Mix_PauseMusic()void Mix_ResumeMusic()int Mix_HaltMusic()int Mix_Fa<strong>de</strong>OutMusic(int ms)Estas funciones han <strong>de</strong> serte ya familiares, ya que son similares a las utilizadas para<strong>con</strong>trolar la reproducción <strong>de</strong> sonidos. Las dos primeras nos permiten pausar y reanudar lareproducción <strong>de</strong> la música. Observa que no tiene ningún parámetro ni <strong>de</strong>vuelven ningúnvalor. Las dos útimas funciones paran la reproducción. Si hubo algún problema al intentarparar la reproducción <strong>de</strong>volverán –1, en caso <strong>con</strong>trario <strong>de</strong>volverán el valor 0. La últimafunción a<strong>de</strong>más nos permite realizar la parada <strong>de</strong> la música <strong>de</strong> forma gradual (fa<strong>de</strong>out)teniendo que proveerle los milisegundos que <strong>de</strong>seamos que dure el fa<strong>de</strong>.La música, a diferencia <strong>de</strong> los sonidos simples, permiten mayor <strong>con</strong>trol. A<strong>de</strong>más <strong>de</strong>reproducir, pausar y parar la música po<strong>de</strong>mos situar la reproducción en el lugar que<strong>de</strong>seemos. Contamos <strong>con</strong> dos funciones que nos permiten realizar esta tarea.void Mix_RewindMusic()int Mix_SetMusicPosition(double position)73

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

Saved successfully!

Ooh no, something went wrong!