我正在制作一个使用加速度计 x 轴的游戏。向左倾斜,小家伙向左倾斜,反之亦然。
现在,如果我向左倾斜,他会向左移动并且 x 值变为负值。当我开始向右移动(从左侧位置)时,他仍然会向左移动,因为 x 值仍然为负,并且只有在值返回到 0 然后增加后他才会开始向右移动。
我的问题是,如何在手机实际进入象限(?)之前检测到手机正在向右转。就像,我如何让他向右移动,即使值仍然是负数,但正在向 0 增加?
最佳答案
你不想要 x 值,你想要 x delta
(每次更改 x 后,将其与之前的值进行比较,这就是您的方向。然后将该 x 的值保存为您的新比较器)
(不是对象)
x 是当前的 X 位置,函数的返回值为您提供当前的方向。 (请检查我的工作 - 我相信它是正确的,但不会将其用于导弹指导)
int directionX (int x) {
static int currPos = 0;
int currDirection;
curDirection = currPos + x;
currPos = currPos + curDirection;
return curDirection;
}
关于iphone - 目标 C : Detecting change in accelerometer,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6599194/