私のゲームのステアリング機構として加速度計を使用しています。それは通常正常に動作しますが、ときどき非常に奇妙に動作します。突然大量の入力遅延があり、しばらくの間は1回転ごとに登録されません。いくつかのケースでは、お互いの直後に入力されたコマンドの間に多くの遅延があり、私のキャラクターが一方向にあまりに長くずれることにつながります。これはゲームの遅れに起因するのですか、または私のコードが間違っていますか?下の私のコード。加速度計を使用する正しい方法
actionMoveLeft = SKAction.moveBy(x: -3, y: 0, duration: 0.1)
actionMoveRight = SKAction.moveBy(x: 3, y: 0, duration: 0.1)
self.addChild(ship)
if motionManager.isAccelerometerAvailable == true {
motionManager.startAccelerometerUpdates(to: OperationQueue.current!, withHandler:{
data, error in
if (data!.acceleration.y) < -0.05 {
self.ship.run(self.actionMoveLeft)
}
else if data!.acceleration.y > 0.05 {
self.ship.run(self.actionMoveRight)
}
})
}