0

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

4

2 回答 2

2

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

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

请参阅iOS 事件处理指南中有关运动事件的部分。

于 2011-08-07T14:51:51.173 回答
1

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

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

于 2013-09-18T23:39:41.757 回答