私は加速度計とマルチタッチが必要なiOSのためのOpenGLのゲームを開発しています。 私はEAGLViewを持っていて、ESRendererを使って描画が行われます。iPod touchのタッチと加速度計の巨大な待ち時間
EAGLViewは、加速度計を実装し、タッチを受ける:
@interface EAGLView : UIView <UIAccelerometerDelegate> { ...
touchesBegan、touchesMovedとtouchesEndedは、このクラスでもあります。
ゲームのロジックは、クロスプラットフォームの理由からいくつかのC++クラスに分割されています。drawViewでは、
- (void)drawView:(id)sender
{
appAccelEvent(ax, ay, az);
if (sys_call == S_TOUCH_EVENT) {
appTouchEvent(eventType, 0, cx0, cy0);
}
[renderer render];
}
バージョン3.1.3のiphoneをテストデバイスとして使用していますが、すべてが問題ありません。今はバージョン4.2.1でipod touchでテストしていますが、ゲームで反応するタッチと加速度計のイベントの遅延が大きすぎます(時には1〜2セグ)。
私は、加速度計の更新間隔のために、レンダラーの速度を遅くする種類のバッファーかもしれないと考えていました。この遅れの原因は他に何か?私は本当にそれを修正するための任意の提案に感謝します。