SDL_mixer.h

Función Mix_SetDistance

Sintaxis

int Mix_SetDistance(int channel, Uint8 distance);

Descripción

Establece la "distancia" de un canal.

Parámetros

channel
El canal del mezclador a atenuar, o MIX_CHANNEL_POST.
distance
Distancia; 0 es el oyente, 255 es la distancia máxima.

Valor de retorno

Devuelve cero si hay error (no hay tal canal o Mix_RegisterEffect() falla), distinto de cero si el efecto de posición está habilitado. Los mensajes de error se pueden recuperar desde Mix_GetError().

Observaciones

distance es un número entero de 0 a 255 que especifica la ubicación del sonido en relación con el oyente. La distancia 0 es la superposición con el oyente, y 255 es lo más lejos posible. Una distancia de 255 no garantiza el silencio; en tal caso, se podría intentar cambiar el volumen del trozo, o simplemente eliminar la muestra del proceso de mezcla con Mix_HaltChannel(). Por eficiencia, la precisión de este efecto puede ser limitada (las distancias 1 a 7 pueden producir todas el mismo efecto, 8 a 15 son iguales, etc). distance es un número entero entre 0 y 255 que especifica el espacio entre el sonido y el oyente. Cuanto mayor sea el número, más lejos estará el sonido. Establecer la distancia a 0 anula este efecto, ya que los datos no cambiarían. Si se necesita audio posicional más preciso, considerar usar OpenAL para efectos espacializados en lugar de SDL_mixer. Esto sólo pretende ser un efecto básico para juegos "3D" sencillos.

Establecer el canal a MIX_CHANNEL_POST lo registra como un efecto posterior, y la atenuación de distancia se hará al flujo final mezclado antes de pasarlo al dispositivo de audio.

Esto utiliza la API Mix_RegisterEffect() internamente.

Hay que tener en cuenta que a diferencia de la mayoría de las funciones SDL y SDL_mixer, esta función devuelve cero si hay un error, no en caso de éxito. Pedimos disculpas por la inconsistencia en el diseño de la API en este caso.