0

Numbersというイベントがあります。Fmod Designer では、listenerAngle に応じてイベントが異なる番号を再生します。このイベントを 3D 空間に配置すると、さまざまな音が聞こえるようにしたいと考えています。これは私が現時点で持っているコードです。アプリ内の数字の 1 つだけが再生されます。何か不足していますか?

FMOD_RESULT         result     = FMOD_OK;
    FMOD_VECTOR         listenerpos;
    FMOD_VECTOR         forward         = { 0.0f, 0.0f, 1.0f };
    FMOD_VECTOR         up              = { 0.0f, 1.0f, 0.0f };
    FMOD_VECTOR         vel             = { 0.0f, 0.0f, 0.0f };

    result = group->getEvent("Numbers", FMOD_EVENT_DEFAULT, &event);
        ERRCHECK(result);

    listenerpos.x = 0.436243;
    listenerpos.y = -0.43643;
    listenerpos.z = -6;

    result = eventSystem->set3DListenerAttributes(0, &listenerpos, &vel, &forward, &up);
    ERRCHECK(result);

助けていただければ幸いです。ありがとう!

4

2 に答える 2

0

おそらくあなたの「Numbers」イベントは2Dですか?3Dであることを確認してください。

于 2011-07-05T23:25:37.223 に答える
0

いくつかの行を追加して、機能させました。イベントを 3D の世界に配置する必要がありました。

FMOD_RESULT    result = FMOD_OK;
FMOD_VECTOR    listenerpos = { 0.0f, 0.0f, 1.0f };
FMOD_VECTOR    eventpos        = { 0.0f, 0.0f, 1.0f };
float DISTANCEFACTOR          = 2.0f;

result = group->getEvent("Numbers", FMOD_EVENT_DEFAULT, &event);
ERRCHECK(result);

listenerpos.x = 0;
listenerpos.y = 0;
listenerpos.z = 0;    

result = eventSystem->set3DListenerAttributes(0, &listenerpos,NULL,NULL,NULL);
ERRCHECK(result);

eventpos.x = xPos; // Object's x position on iPhone I move around
eventpos.z = yPos;


result = event->set3DAttributes(&eventpos2,&vel);
ERRCHECK(result);

result = eventSystem->update();
ERRCHECK(result);

result = ballEvent->start();
ERRCHECK(result);
于 2011-07-07T09:32:33.060 に答える