Я использовал этот урок для создания игрового цикла.
В разделе, отмеченном «FPS зависит от постоянной скорости игры», есть пример кода, который включает в себя команду Sleep
Я погуглил эквивалент в java и обнаружил, что это
Thread.sleep();
, но он возвращает ошибку в затмении
Unhandled exception type InterruptedException
Что на земле это значит.
А еще мне было интересно, что методы
update_game();
display_game();
могут содержать в игре opengl-es (т. Е. Где обновляется рендерер и что происходит в display_game ();
В настоящее время я использую систему, которая использует функции GLSurfaceView и GLSurfaceRenderer
Вот моя адаптация кода в руководстве
public Input(Context context){
super(context);
glSurfaceRenderer = new GLSurfaceRenderer();
checkcollisions = new Collisions();
while (gameisrunning) {
setRenderer(glSurfaceRenderer);
nextGameTick += skipTicks;
sleepTime = nextGameTick - SystemClock.uptimeMillis();
if(sleepTime >= 0) {
Thread.sleep(sleepTime);
}else{
//S*** we're behind
}
}
Это называется в моем GLSurfaceView, хотяЯ не уверен, что это правильное место для реализации этого.