我知道这是一个非常笼统且含糊的问题,但我很好奇如何以最简单的方式将此功能导入我的应用程序。我看到了很多游戏,Doodle Jump是我的第一示例,它允许您校准加速度计,因此,如果您侧坐着,该游戏将像新游戏一样运行良好。他们如何做到这一点?我想要在我的应用程序中使用相同的功能,但是我不确定该怎么做或从哪里去实现此功能。
谢谢!
最佳答案
您可以将“校准”视为对某些根值或状态的恒定引用。当您要重置校准时,只需重置从中导出所有其他值的根值。使用加速度计,您可以通过委托回调知道何时检测到更改,因此您所要做的就是编写一种“捕获”加速度计当前状态的方法。
在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;
}