Я разрабатываю открытую игру для ios, которая требует акселерометр и мультитач.
У меня есть EAGLView, который использует ESRenderer, где происходит рисование.
EAGLView реализует акселерометр и получает прикосновения:
@interface EAGLView : UIView <UIAccelerometerDelegate> { ...
прикосновения Начал, прикосновенияПеремещены и прикосновения закруглены также в этом классе.
Вся логика игры разбита на несколько классов c ++ по кросс-платформенным причинам, в drawView я отправляю акк. значения к игровой логике:
- (void)drawView:(id)sender
{
appAccelEvent(ax, ay, az);
if (sys_call == S_TOUCH_EVENT) {
appTouchEvent(eventType, 0, cx0, cy0);
}
[renderer render];
}
Я использовал iphone с версией 3.1.3 в качестве тестового устройства, и все в порядке. но сейчас я тестирую его на ipod touch с версией 4.2.1, и задержка реакции сенсора и акселерометра в игре слишком велика, иногда между 1 и 2 сегментами.
Я думал, что это может быть какой-то буфер для интервала обновления акселерометра, который замедляет рендерер. Что еще может быть причиной этого отставания? Я действительно ценю любые предложения, чтобы исправить это.