校准加速度计?

时间:2011-09-17 16:56:33

标签: ios accelerometer

我知道这是一个非常笼统和模糊的问题,但我很好奇如何以最简单的方式将此功能应用到我的应用程序中。我看到很多游戏,Doodle Jump是我的第一个例子,它允许你校准加速度计,所以如果你坐在侧面,游戏将会像新的一样好用。他们如何做到这一点?我想在我的应用程序中使用相同的功能,但我不知道该做什么或从何处开始实现此功能。

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以将“校准”视为对某个根值或状态的常量引用。如果要重置校准,只需重置所有其他值的根值。使用加速度计,您可以通过委托回调了解何时检测到更改,因此您需要编写一种方法来“捕获”加速度计的当前状态。

tutorial outlined here中,这种方法概述为:

-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
     calibration = acceleration.y;
}

但是,这并不像我们希望的那样“受控制”。相反,要么将您与UIAccelerometer的关系作为代理断开,要么用BOOL ean属性将其包围,以指示您是否允许进行校准。像这样的东西应该可以正常工作:

-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
     if (self.allowsCalibration)
         calibration = acceleration.y;
}