我正在制作一款使用加速度计x轴的游戏。向左倾斜,小家伙向左走,反之亦然。
现在,如果我向左倾斜,他将向左移动,x值变为负值。当我开始向右移动(从左侧位置)时,他仍然会离开,因为x值仍为负值,并且他只会在值返回0后才开始向右然后增加。
我的问题是,如果手机实际上在象限(?)之前如何检测到手机正在向右转。就像,我如何让他向右移动,即使价值仍为负值,但是朝着0增加?
答案 0 :(得分:3)
你不想要x值,你想要x delta
(在x中的每次更改之后,将其与之前的值进行比较,这是您的方向。然后将x的值保存为新的比较器)
(不是objc)
x是当前的X位置,函数的返回值为您提供当前的方向。 (请检查我的工作 - 我认为这是正确的,但不会将其用于导航指导)
int directionX (int x) {
static int currPos = 0;
int currDirection;
curDirection = currPos + x;
currPos = currPos + curDirection;
return curDirection;
}