Eskema
08/09/2005, 23:09
Buenas, aqui estoy con otro pequeño tutorial sobre la SDL, esta vez vamos a ver como poner sonidos o musica en el juego.
Ale que lo disfruteis con salud XD
#include <sdl.h>
#include <stdio.h>
#include <sdl_mixer.h>
int main (int argc, char *argv[]) {
SDL_Surface *pantalla; //declaramos primero la pantalla base
Mix_Chunk *sonido; //declaramos un sonido para usar
Mix_Music *musica; //declaramos la musica de fondo
int terminar = 0; //salimos de la aplicacion/juego
atexit(SDL_Quit);
if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) < 0) { //iniciamos la sdl y el audio
exit (-1);
}
pantalla= SDL_SetVideoMode (320,240,16, SDL_HWSURFACE | SDL_DOUBLEBUF);
if(!pantalla)
{
SDL_Quit();
exit(-1);
}
if (Mix_OpenAudio(22050, AUDIO_S16SYS, 2, 4096) < 0)
// iniciamos el audio a la frecuencia 22hz, 16 bits, 2 canales y un buffer de 4096 (segun el //sonido poner mas o menos cantidad de buffer)
{
exit(-1);
}
atexit(Mix_CloseAudio); //supongo que os imaginais para que sirve esto
// cargamos los sonidos
musica = Mix_LoadMUS("sonidos/war.WAV"); //no creo q necesite explicacion
sonido = Mix_LoadWAV("sonidos/pistola.wav");
Mix_PlayMusic(musica, -1) //hacemos sonar la musica, 0 normal -1 infinito
Mix_PlayChannel(-1,sonido,0); //-1 canal donde suena, sonido (pues.... XD) 0 normal -1infinito
while(!terminar) { //mientras no terminamos el programa seguimos dandole cera XD
SDL_PollEvent(NULL);
teclas = SDL_GetKeyState(NULL);
if(teclas[SDLK_ESCAPE]) //si pulsamos escape nos escapamos XD
terminar = 1;
}
Mix_HaltMusic(); //paramos la musica
Mix_FreeChunk (sonido); //liberamos sonido
Mix_FreeMusic(musica); //liberamos la musica
SDL_Quit();
}
Ale que lo disfruteis con salud XD
#include <sdl.h>
#include <stdio.h>
#include <sdl_mixer.h>
int main (int argc, char *argv[]) {
SDL_Surface *pantalla; //declaramos primero la pantalla base
Mix_Chunk *sonido; //declaramos un sonido para usar
Mix_Music *musica; //declaramos la musica de fondo
int terminar = 0; //salimos de la aplicacion/juego
atexit(SDL_Quit);
if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) < 0) { //iniciamos la sdl y el audio
exit (-1);
}
pantalla= SDL_SetVideoMode (320,240,16, SDL_HWSURFACE | SDL_DOUBLEBUF);
if(!pantalla)
{
SDL_Quit();
exit(-1);
}
if (Mix_OpenAudio(22050, AUDIO_S16SYS, 2, 4096) < 0)
// iniciamos el audio a la frecuencia 22hz, 16 bits, 2 canales y un buffer de 4096 (segun el //sonido poner mas o menos cantidad de buffer)
{
exit(-1);
}
atexit(Mix_CloseAudio); //supongo que os imaginais para que sirve esto
// cargamos los sonidos
musica = Mix_LoadMUS("sonidos/war.WAV"); //no creo q necesite explicacion
sonido = Mix_LoadWAV("sonidos/pistola.wav");
Mix_PlayMusic(musica, -1) //hacemos sonar la musica, 0 normal -1 infinito
Mix_PlayChannel(-1,sonido,0); //-1 canal donde suena, sonido (pues.... XD) 0 normal -1infinito
while(!terminar) { //mientras no terminamos el programa seguimos dandole cera XD
SDL_PollEvent(NULL);
teclas = SDL_GetKeyState(NULL);
if(teclas[SDLK_ESCAPE]) //si pulsamos escape nos escapamos XD
terminar = 1;
}
Mix_HaltMusic(); //paramos la musica
Mix_FreeChunk (sonido); //liberamos sonido
Mix_FreeMusic(musica); //liberamos la musica
SDL_Quit();
}