【发布时间】:2011-12-01 06:02:02
【问题描述】:
我正在尝试从 ViewA 校准我的 UIAccelerometer,但我的游戏视图是 ViewB。 所以我想要实现的目标是让用户站在他们一边玩,我希望我的游戏表现得就像他们以正常姿势坐着玩一样。
那么在 ViewA 中我会这样做吗?:
float accelX = (acceleration.x - [[NSUserDefaults standardUserDefaults] floatForKey:@"value1"]);
[[NSUserDefaults standardUserDefaults] setFloat:accelX forKey:@"value1"];
那么在我的 Game 类中,我会在我的 UIAccelerometer 委托方法中执行此操作吗?:
float accelX = (acceleration.x - [[NSUserDefaults standardUserDefaults] floatForKey:@"X-Calibrate"]);
//Low Pass Filter
rollingX = (accelX * kFilteringFactor) + (rollingX * (1.0 - kFilteringFactor));
AccelPoint.x += (rollingX*50);
然后我会做这样的事情:
mySprite.position = ccp(accelX, yValue);
我做错了什么吗?
谢谢!
编辑:ViewB 的新代码,我现在还需要某种形式的摩擦吗?
rollingX = (acceleration.x * kFilteringFactor) + (rollingX * (1.0 - kFilteringFactor));
AccelPoint.x += (rollingX*50);
然后在该代码之后,我将设置我的对象的位置。
【问题讨论】:
-
你试过了吗?如果是这样,您看到了什么行为?
-
是的,我已经尝试过了,似乎根本没有校准。我应该这样做吗?
标签: objective-c ios accelerometer calibration