miércoles, 4 de julio de 2012

SDLMixer sonidos


Aquí os dejo un ejemplo de como hacer escuchar nuestros sonidos. Los sonidos a los que me refiero son los ruidos y golpes que hace el juego al saltar o al cerrar una puerta. En este caso cada vez que pulsamos la tecla arriba saldrá el sonido cargado de este modo:
  
// las variables
 archivo: SDL.RWops
sonido: SDLMixer.Chunk
canal: SDLMixer.Channel
 

 // inicialización y llamada con play
    archivo= new SDL.RWops.from_file ("/home/gontzal/Mahaigaina/boing.ogg","rb")
    sonido= new SDLMixer.Chunk.WAV (archivo,-1)
    canal.play(sonido,0)
 


[indent=4]
uses SDL
uses SDLMixer

screen: unowned SDL.Screen
alto: int16=400
ancho:int16 =800
a: int=0
fin:bool=false
musica2: SDLMixer.Music
archivo: SDL.RWops
sonido: SDLMixer.Chunk
canal: SDLMixer.Channel
 

init
   
    SDL.init()
    screen = SDL.Screen.set_video_mode (ancho, alto,15,SurfaceFlag.FULLSCREEN| SurfaceFlag.DOUBLEBUF | SurfaceFlag.HWACCEL | SurfaceFlag.HWSURFACE)
    a= SDLMixer.open(44100,SDL.AudioFormat.S16LSB,2,4096)
    var musica2= new SDLMixer.Music ("/home/gontzal/Mahaigaina/ZOOM0009.MP3")
    musica2.play(1)
   
    archivo= new SDL.RWops.from_file ("/home/gontzal/Mahaigaina/boing.ogg","rb")
    sonido= new SDLMixer.Chunk.WAV (archivo,-1)
    canal.play(sonido,0)
 
              
    while fin == false
        event: SDL.Event
        while (Event.poll (out event))== 1
            if event.type ==SDL.EventType.QUIT
                print "adios"
                fin= true
                break
            else if event.type == EventType.KEYDOWN
                if event.key.keysym.sym == KeySymbol.ESCAPE
                    fin=true
                    break
                if event.key.keysym.sym == KeySymbol.UP
                    canal.play(sonido,0)
                    break
                   
    SDL.quit()


 No olvidemos que valac necesita las siguientes opciones para poner la música:

$ valac --pkg sdl --pkg sdl-mixer -X -lSDL_mixer misonido.gs --Xcc=-I/usr/include/SDL


Si quereís consultar los comandos de Genie + SDL no dudeís en consultar Valadoc en la sección de SDL. Alli encontrareis los primos SDLGraphics, Mixer, Image, Net,etc. Para buscar comandos en Valadoc se inserta la palabra clave SDL en el buscador superior izquierdo y hay se va desplegando la ayuda.

No hay comentarios:

Publicar un comentario