c++ - Xbox360 模拟摇杆角度 SDL

标签 c++ controller lua joystick angle

好吧,直截了当,我正在使用 SDL 和 openGL 以及 lua 脚本编写 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 deg = Pi rad)并且 Pi 是 3.141592,不是 3.1 :)

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

相关文章:

laravel-5 - 在 Laravel 5.4 Controller 构造函数中获取用户

c# - MVC Api Action & System.Web.Http.AuthorizeAttribute - 如何获取发布参数?

c - Lua调用C函数的性能

Javascript:在 JavaScript 中是否有等同于 lua 的 _G?

C++分离线程在其关联对象被删除后继续工作

c++ ->?= 运算符是什么意思?

c++ - __builtin_round 不是常量表达式

c# - 从 ASP.NET MVC Controller 中删除功能

c++ - 读取解码后的 JSON Lua 表

c++ - C++ 对字 rune 字的顺序有什么保证?