AlListenerfv

void alListenerfv(ALenum param, ALfloat *values): solo hay un oyente (nosotros) y  tien tres propiedades fundamentales: la posición, la velocidad y la orientación. Esas con expreadoas mediante puntos o vectores sobre los ejes x,y,z.

param: puede tomar los siguientes valores: float pos[]={0.1,2.0,5.0};// la posicion x=0.1 y=2.0 z=5.0 alListenerfv(AL_POSITION,pos);
 * AL_POSITION: Lo que ponemos en values nos da la posición sobre los ejes x,y,z.

float vel[]={1.0,0.0,0.0};// velocidad de "1" en dirección del eje x alListenerfv(AL_VELOCITY,vel);
 * Al_VELOCITY: es un vector que nos da la velocidad. No está expresado en ninguna unidad, lo que significa que automaticamente será igual a la que uses en el juego, o aplicación que estes creando.
 * AL_ORIENTATIO: nos da la orientación del oyente. son dos vectores: El primero sale de la cabeza del oeyente, y la otra de su frente.

float ori[]={1.0,0.0,0.0,0.0,0.0,1.0};// Tengase en cuanta que openAl es como openGl, donde el vector que va hacia arriba es el de la x, y el que tenemos en frente es el de la z. //los primeros 3 numeros son del vector que sale de la cabeza y los otrs tres el que tine en la frente. alListenerfv(AL_ORIENTATION,ori); values: es el array que le pasamos con las coordinadoas o vectores

Errores que puede producir
Recuerde que para obtener cual de los siguientes errores se produjo, use alGetError :


 * AL_INVALID_VALUE: el parametro value, no es valido. Eso se puede deber a que apunta a NULL o es de un tipo incorrecto.
 * AL_INVALID_OPERATION: no hay un contexto adecado para ejecutar la funión.
 * AL_INVALID_ENUM: lo auq pasastes a param, no es valido.

Ejemplo
/para compilarlo en linux: gcc nombre_del_fichero.c -lopenal //comprobar que las librerias de openal esten instalados int main { float pos[]={0.1,2.0,5.0}; float vel[]={1.0,0.0,0.0}; float ori[]={1.0,0.0,0.0,0.0,0.0,1.0}; alListenerfv(AL_POSITION,pos); alListenerfv(AL_VELOCITY,vel); alListenerfv(AL_VORIENTATION,ori); //crear las fuentes y asignarles proiedades //reproducir fuentes return 0; }
 * 1) include 