我正在制作一个使用加速度计 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/

10-09 01:24