我正在制作一个 2d 游戏。手机水平握持,角色上下左右移动以避开障碍物。角色由手机上的加速度计控制。如果玩家不介意(0,0)
(角色静止不动的点)手机完全平放,一切都会正常工作。在这种情况下,可以直接读取 Y 和 X 值并使用它们来控制角色。加速度计值在 -10 和 10 之间(它们乘以加速度常数来决定角色的移动速度),libgdx
是使用的框架。
问题是拥有(0,0)
不是很舒服,所以我们的想法是对其进行校准,以便在特定时间点将 0,0 设置为手机位置。
这让我想到了我的问题,我该怎么做?我试着只读取当前的 X 和 Y 值然后减去它。问题在于,当手机保持 90 度角时,X 偏移值为 10(这是最大值),因此最终无法移动,因为该值永远不会超过 10 ( 10-10 = 0
)。Z轴必须以某种方式在这里发挥作用,我只是不确定如何。
感谢您的帮助,我尽我所能解释,我确实尝试过寻找解决方案,但我什至不知道我正在寻找的正确术语是什么。