0

一行中的问题是我想应用像 deepEnd 越狱应用这样的效果。

详细信息:我有一个 UIImageView 作为背景。在此之上,我添加了金币图像。我需要做的是,当用户倾斜 ipad 时,背景应该根据运动在 x 或 y 或两个轴上移动。我唯一不明白的是,当我在 xy 平面上拿着 ipad 并倾斜它时,背景在 x 轴上没有变化。请帮我 。如果您需要更多详细信息,请告诉我

这是我用来移动背景图像的代码

-(void) moveBackground:(CMAcceleration) 加速度 {

    [_background setFrame:CGRectMake(50*acceleration.y, 50*acceleration.z, _background.bounds.size.width, _background.bounds.size.height)];
}];

}

图片

4

1 回答 1

0

我猜您对CMDeviceMotion 类中存在的重力感兴趣,当您开始设备运动更新时,您可以获得相对于设备参考平面的重力(即加速度)。您可以使用atan2()函数根据恒定重力获取设备的角度。例如,以下代码为您提供关于设备 Y 轴的重力角。 不过,您需要小心设备运动。它可能不适用于所有设备(EX:iPad1),在这种情况下,您需要使用它提供原始加速度而不是精细重力。一个你有一个简单的数学问题的角度来看看你的背景必须移动多少。CMAcceleration gravity = motionManager.deviceMotion.gravity; CGFloat angle = atan2(gravity.z, gravity.x);motionManager.accelerometerData.acceleration

于 2013-06-12T11:43:20.233 回答