So, I have a little app (interfacing with the FMOD DLL)since its written in Python. My problem is this:
When the app starts, it loads some sounds, and begins playback of a random sound at (20, 0, 0). The orientation is set to (sin(theta), cos(theta), 0) for forward and (0, 0, 1) for upwards. When the application listens for events and receives a press of either the left or right arrow keys, it increases the theta by 15 or decreases it by 15, respectively, and recalculates the orientation. Here’s the code for that:
if event.type==sdl2.SDL_KEYUP and event.key.keysym.sym==sdl2.SDLK_RIGHT:
forward_orientation = FMOD_VECTOR()
upward_orientation = FMOD_VECTOR()
res = fmod.FMOD_System_Set3DListenerAttributes(system, 0, None, None, ctypes.byref(forward_orientation), ctypes.byref(upward_orientation))
That’s for the increase. The decrease is similar. (I also do error checking, as well, below that.) The problem is, though the attributes are set, the sounds position doesn’t change at all. It does not seem to “orient”/“rotate” depending on where the listener is facing. I do call FMOD_System_Update(), as well, at the start of the loop. I’ve tried initializing the system object with both right-handed and default coordinate systems,and get the same result for both. What exactly am I doing wrong?