私は iOS でゲームを書いており、加速度計を使用して応答の動きを設定しようとしています。そのため、iPhone でゲームを開始すると、すべて問題なく、加速度計も問題なく応答しています。しかし、ゲーム ループ (一時停止メニュー) を停止してから再開すると、画面上のエンティティがどこかにジャンプし、数秒後に元の位置に戻ります。これは、ゲーム ループと加速度計のデルタの差が原因で発生していると考えられます。ゲームループが更新されたときにのみ値を更新するようにiPhoneの加速度計を設定する方法はありますか?
UIAccelerometer からの値は次のように読み取られます (必要なのは x 軸だけです)
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
accelerometValues[0] = acceleration.x * 0.1f + accelerometValues[0] * (1.0 - 0.1f);
}
加速度計は次のように設定されています
[[UIAccelerometer sharedAccelerometer] setUpdateInterval:1.0 / 60.0];
[[UIAccelerometer sharedAccelerometer] setDelegate:currentScene];
ゲームループ自体は Alex Diener のチュートリアルから引用しましたGameLoop Tutorial