2017-06-10 9 views
1

私の加速度計を自分のゲームのステアリングコントロールとして使用しています。 iphoneの傾きによって、スプライトが正、負、ゼロのいずれの速度を持つかが決まります。問題は、私が重度の入力遅れに気付き始めるいくつかの経験の後です。私の船の速度は、フレーム更新機能で変更されます。その前にprintステートメントを追加して、iPhoneの傾きに合わせて速度が変わるまでに数秒かかることがあることがわかりました。これは、ゲームが非常に厄介な感じになります。なぜこうなった?加速度計の入力遅れ

if motionManager.isAccelerometerAvailable == true { 
      motionManager.startAccelerometerUpdates(to: OperationQueue.current!, withHandler:{ 
       data, error in 
       if (data!.acceleration.y) < -0.05 { 
        self.velocity = -500 
       } 

       else if data!.acceleration.y > 0.05 { 
        self.velocity = 500 
      } 
       else{ 
        self.velocity = 0 
       } 

      }) 

     } 


override func update(_ currentTime: CFTimeInterval) { 
    moveBG() 
    removeBullets() 
    print(velocity) 
    self.ship.physicsBody?.velocity.dx = velocity 
} 

答えて

0

入力遅延は、私のモーションマネージャの加速度計の更新間隔を設定していないためです。値を0.1に設定すると問題がなくなり、スムーズなゲームプレイが実現します

関連する問題