0

1行の質問は、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 軸に関する重力の角度を示します。 ただし、デバイスの動きには注意する必要があります。すべてのデバイス (例: iPad1) で使用できるとは限りません。その場合、洗練された重力ではなく生の加速度を与えるものを使用する必要があります。角度がわかれば、背景がどれだけ移動する必要があるかを数学で簡単に確認できます。CMAcceleration gravity = motionManager.deviceMotion.gravity; CGFloat angle = atan2(gravity.z, gravity.x);motionManager.accelerometerData.acceleration

于 2013-06-12T11:43:20.233 に答える