lunes, 18 de marzo de 2013

PakEngine. Capitulo 12. Incluyendo sonido


Artículo perteneciente a la sección del PakEngine

Hola a todos,

En otros motores que he desarrollado siempre he usado OpenAL y alut  para los temas de audio, pero nunca me ha acabado de gustar. Solo acepta wav (y no con todas las configuraciones) y hacer que funcione nunca es fácil.

En cambio, ahora, buscando por internet he encontrado una libreria un poco anticuada pero que tiene todo lo que necesito: audiere  . Carga ogg, mp3,wav, mod y otros formatos y es extremadamente sencilla de usar e integrar con el resto del sistema.

El código del gestor de audio lo he distribuido en los ficheros SoundList.cpp y .h

SoundList.h

#ifndef __SOUNDLIST__
#define __SOUNDLIST__

//Máximo número de sonidos
#define MAX_SOUNDS 100

void SOUNDLIST_Init(void);
int SOUNDLIST_Insert(char cad[]);
void SOUNDLIST_Play(int sound);

#endif




SoundList.cpp
#include "SoundList.h"
#include <iostream>

#include "audiere.h"
using namespace audiere;

AudioDevicePtr* device;
OutputStreamPtr* soundlist[MAX_SOUNDS];
int index_sound = 0 ;

void SOUNDLIST_Init(void)
{
device = new AudioDevicePtr(OpenDevice());
}

int SOUNDLIST_Insert(char cad[])
{
soundlist[index_sound++] = new OutputStreamPtr(OpenSound(*device, cad, false));
return (index_sound-1);
}

void SOUNDLIST_Play(int sound)
{
(*soundlist[sound])->play();
}

Como podéis observar el código es extremadamente sencillo, aunque es cierto que aún le tengo que dar bastantes funcionalidades a la parte de audio, pero esto ya lo iremos viendo con el tiempo.

El código del proyecto lo podéis bajar del svn.

Y con la parte de audio finalizada creo que en breve podré hacer una primera release alpha de la libreria dll para que desarrolléis vuestros propios juegos. Os mantendré informados.

Nos vemos

LordPakusBlog

<<capitulo anterior                                                                                          siguiente capitulo >>

0 comentarios :

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...