Cocos2d x 当设备处于不同位置时,如何将加速计值标准化为控制器输入?

Cocos2d x 当设备处于不同位置时,如何将加速计值标准化为控制器输入?,cocos2d-x,accelerometer,cocos2d-x-3.x,Cocos2d X,Accelerometer,Cocos2d X 3.x,设备加速计以g力为单位报告每个轴的值。 i、 e.(x,y,z)三胞胎 每个值都在-1.0f到1.0f的范围内 我正在制作一个带有简单倾斜控制的游戏,这样如果你向左倾斜,角色就会向左移动,如果你向右倾斜,角色就会向右移动 根据加速计值,如果智能手机垂直放置,则Y值似乎非常接近1,Z值非常接近0,X值的范围从-1.0到1.0f,具体取决于手机向左或向右倾斜90度。在这种情况下,很容易找出用户希望角色移动的预期方向,因为我们可以读取X值 但是,如果手机没有完全直立,情况又如何呢?我应该如何检测玩家想

设备加速计以g力为单位报告每个轴的值。 i、 e.(x,y,z)三胞胎

每个值都在-1.0f到1.0f的范围内

我正在制作一个带有简单倾斜控制的游戏,这样如果你向左倾斜,角色就会向左移动,如果你向右倾斜,角色就会向右移动

根据加速计值,如果智能手机垂直放置,则Y值似乎非常接近1,Z值非常接近0,X值的范围从-1.0到1.0f,具体取决于手机向左或向右倾斜90度。在这种情况下,很容易找出用户希望角色移动的预期方向,因为我们可以读取X值

但是,如果手机没有完全直立,情况又如何呢?我应该如何检测玩家想要去的方向

-我假设我应该做某种比例因子,因为0到1意味着设备有多直立,所以我可以对x坐标应用比例因子。这有意义吗?

如果手机正面朝下,那么仅仅通过加速计值就无法确定预期的方向,这一假设正确吗?