Подтвердить что ты не робот

Синтез для Android, как управлять скоростью и частотой кадров

Я написал игру для Android, и я протестировал ее на Dev Phone 1. Он отлично работает, скорость в порядке. Тем не менее, я уверен, что центральный процессор становится быстрее. Они, возможно, уже быстрее, чем телефон.

Как я могу убедиться, что моя игра работает с одинаковой скоростью независимо от того, какое устройство и как быстро оно работает? Знаете ли вы о каких-либо методах? Должен ли я каждый раз проверять какой-то таймер в верхней части цикла?

Я предполагаю, что я имею в виду частоту кадров - но в основном скорость, с которой моя игра проходит через основной игровой цикл.

Любая теория или опыт были бы замечательными! Спасибо.

4b9b3361

Ответ 1

Если вы настроили таргетинг на определенную частоту кадров, основная идея заключается в том, что вы должны иметь таймер или поток, который будет выполнять ваш метод тика игры в нужные промежутки времени. С таймерами реализация довольно тривиальна: просто планируйте таймер для выполнения с регулярными интервалами. При использовании потоков вы должны поместить поток в режим ожидания между последовательными тиками, если он работает быстрее, чем требуемая частота кадров.

Однако это само по себе не приводит к наилучшим возможным результатам, так как интервал может немного различаться между кадрами. В этой статье есть очень хорошая статья: http://gafferongames.com/game-physics/fix-your-timestep/.

Кроме того, есть уже более медленные и быстрые телефоны для Android, чем у телефона-разработчика 1. Таким образом, вам нужно подготовиться к обоим случаям, если вы настроите таргетинг на все устройства Android. Если ваша игра не настолько тяжелая, возможно, вы можете добиться желаемой частоты кадров на всех устройствах. Но если вы не ограничите частоту кадров, ваша игра будет слишком быстрой на более быстрых телефонах Android.