Blog de programación enfocado a estudiantes principiantes de C/C++ en español. Dispone de cursos de todos los niveles y para multitud de usos.
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
<<capitulo anterior siguiente capitulo >>
Entradas populares
-
Una pregunta que me hacen en muchas ocasiones es ¿¿qué significa %2?? La respuesta tiene dos acepciones en función de si lo estamos u...
-
<< Ejemplo anterior Artículos Relacionados Ejemplo siguiente >> Hola a todos, ASCII Art es el hecho de hacer di...
-
Articulo perteneciente a : Referencias de programación Hola a todos Os pongo una aportación que a más de uno le irá bien, un resumen de ...
-
Capítulo perteneciente al tutorial de opengl desde cero Hola a todos, Este capítulo tal vez es de lo más complicados de la teoría necesa...
-
<< Ejemplo anterior Artículos Relacionados Ejemplo siguiente >> Hola a todos, El ejercicio de hoy se basa en c...
-
<< Capítulo anterior Artículos Relacionados Capítulo siguiente >> Hola a todos, Este tutorial intenta ser e...
-
<< Capítulo anterior Artículos Relacionados Capítulo siguiente >> Hola a todos... Un compañero vuestro ha...
-
Hola a todos... He aquí la primera entrega "Como crear tu propio motor de videojuegos y no morir en el intento". Antes que nada ...
-
Hola a todos Ya que he recibido un par de mails pidiéndome información sobre SEO, os adjunto unos cuantos trucos que he ido aprendiendo du...
-
<< Capítulo anterior Artículos Relacionados Capítulo siguiente >> El c apitulo de hoy trata sobre las instrucc...
0 comentarios :
Publicar un comentario