3 つの異なる平面に分割されたシーンがあり、これらの平面を軸上のデバイスの回転に対して左または右に移動したいので、デバイスが表面に対して 0 度のときに平面が中心になります。iPod touch (第 1 世代) のゲームのホーム画面でこの効果が見られます。同様の効果を生み出すには、どのセンサーを使用する必要がありますか?
2 に答える
視差効果を実現するには、CoreMotion フレームワークをプロジェクトに追加し、CMMotionManager
. 次に、ジャイロスコープを備えたデバイスの場合、ハンドラー ブロックで 使用startDeviceMotionUpdatesToQueue:withHandler:
および検査できます。motion.attitude.roll
ジャイロスコープを持たないデバイスの場合は、 を使用startAccelerometerUpdatesToQueue:withHandler:
して調べるaccelerometerData.acceleration.x
か、 を使用UIAccelerometer
して実装できますUIAccelerometerDelegate
。いずれにせよ、重力と線形加速度を区別するためにローパス フィルターを作成する必要があるでしょう。GLGravity プロジェクトには、この例があります。
iOS のイベント処理ガイドのモーション イベントに関するセクションを参照してください。
このUIViewカテゴリを試して ください https://github.com/Przytua/UIView-MWParallax
1 つのプロパティ値を設定するだけで、選択した UIView (またはそのサブクラス) オブジェクトに視差効果が得られます。