用什么传感器在iPhone上创建视差效果?

时间:2011-08-06 22:56:30

标签: iphone ipad move sensor parallax

我有一个场景分为3个不同的平面,我想相对于设备在轴上的旋转向左或向右移动这些平面,所以当设备与表面成0度时,平面将打开中央。我在iPod touch(第一代)的游戏主屏幕上看到了这种效果。 我必须使用哪种传感器来产生类似的效果?

2 个答案:

答案 0 :(得分:2)

要实现视差效果,请将CoreMotion框架添加到项目中并构建CMMotionManager。然后,对于具有陀螺仪的设备,您可以使用startDeviceMotionUpdatesToQueue:withHandler:并检查处理程序块中的motion.attitude.roll

对于没有陀螺仪的设备,您可以使用startAccelerometerUpdatesToQueue:withHandler:并检查accelerometerData.acceleration.x,也可以使用UIAccelerometer并实施UIAccelerometerDelegate。无论哪种方式,您可能都想创建一个低通滤波器来帮助区分重力和线性加速度。 GLGravity项目就是一个例子。

请参阅“iOS事件处理指南”中的Motion Events部分。

答案 1 :(得分:1)

试试这个UIView类别 https://github.com/Przytua/UIView-MWParallax

只需设置1个属性值即可获得所选UIView(或其子类)对象的视差效果