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