好的,直截了当,我正在使用带有Lua脚本的SDL和openGL在C ++中开发游戏引擎,我需要获取模拟摇杆的角度来确定使用此lua代码的2D枪的方向

playerLookArrow.rotation = math.atan(logic:controllerAxisForce(3)/-logic:controllerAxisForce(4))


逻辑:controllerAxisForce(int AXIS)返回

SDL_JoystickGetAxis(Joystick, AXIS);


问题是我的枪只会指向左侧,而不是左侧和右侧。

最佳答案

您应该使用math.atan2为您执行以下逻辑(http://www.lua.org/manual/5.1/manual.html#pdf-math.atan2):

playerLookArrow.rotation = math.atan2(
    logic:controllerAxisForce(3),
    -logic:controllerAxisForce(4))


请注意,返回值以弧度为单位(180度= Pi rad),Pi为3.141592,notre 3.1 :)

关于c++ - Xbox360模拟杆角SDL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22392840/

10-11 07:12