Изменить угол слушателя в FMOD - PullRequest
1 голос
/ 10 июля 2011

Я настроил систему событий в FMOD с 3D-звуком, запускаемым, когда слушатель находится рядом с ними. Я хочу иметь возможность изменять угол наклона слушателя так, чтобы весь мой звуковой ландшафт сдвигался на столько же градусов, сколько вращается мой слушатель. Хорошо, а?

Возможно ли это? Каким будет код iPhone для этого? Я бы передал что-то в метод set3DListenerAttributes?

Ответы [ 2 ]

1 голос
/ 11 июля 2011

Я не уверен, что полностью понимаю, вы просто хотите повернуть слушателя в трехмерном пространстве? Если это так, вы регулируете вектор слушателя вперед, чтобы он указывал в новом направлении.

** На основании вашего ответа **

FMOD работает с декартовой системой координат, он имеет вектор единичной длины, который указывает направление, в котором находится объект (или слушатель). Я бы порекомендовал вам немного прочитать о тригонометрии, чтобы полностью понять, как преобразовать угол (в градусах или радианах) в вектор.

Для вашего прямого вектора уравнение (если я правильно помню): x = cos (угол) z = грех (угол) у = 0;

Это предполагает угол в радианах, чтобы преобразовать из градусов в радианы: радианы = градусы * (180 / пи) где Пи примерно 3,14159265

0 голосов
/ 14 июля 2011

Это был код, который я использовал в конце:

float degree = 90;
float radians = (degree) * (M_PI/180);


float fx = cos(radians);
float fz = sin(radians);

forward.x = fx;
forward.z = fz;

listenerpos.x = lxPos * DISTANCEFACTOR;   
listenerpos.z = lyPos * DISTANCEFACTOR;


result = eventSystem->set3DListenerAttributes(0, &listenerpos,&vel,&forward,NULL);
...