У меня есть игра на С++, работающая через JNI в Android. Частота кадров варьируется от 20 до 45 кадров в секунду из-за сложности сцены. Все, что выше 30fps, глупо для игры; это просто сжигание батареи. Я хотел бы ограничить частоту кадров до 30 кадров в секунду.
- Я могу переключиться на RENDERMODE_WHEN_DIRTY и использовать Timer или ScheduledThreadPoolExecutor для запросаRender(). Но это добавляет целый беспорядок дополнительных движущихся частей, которые могут или не могут работать последовательно и правильно.
- Я пытался впрыскивать Thread.sleep(), когда все работает быстро, но это не работает вообще для небольших значений времени. И это может просто поддерживать события в очереди в любом случае, а не приостанавливать.
Есть ли способ "capFramerate()", скрывающийся в API? Любой надежный способ сделать это?