Изменение дельтатимы игр libgdx

#kotlin #libgdx #game-engine #game-physics #box

Вопрос:

Я хочу приостановить свою игру libgdx, в которой есть слово box2d. Чтобы приостановить игру, я решил вручную выполнить дельтАтим. Я подумал, что если я установлю deltaTime равным нулю, все коды рендеринга могут подождать, пока не нажмут кнопку «Возобновить». Однако deltaTime — это не var, это val. Таким образом, из-за того, что deltaTime-это val, я не могу переназначить значение deltaTime. Изменение дельтатимы запрещено. Есть ли какой-нибудь способ изменить дельтатиму?

Ответ №1:

deltaTime является измерением времени, прошедшего с момента последнего рендеринга, а не параметром.

Вы можете остановить (и начать) рендеринг с помощью

Gdx.graphics.setContinuousRendering(false);

(Обычно это используется, когда вы хотите определить, как часто выполнять рендеринг Gdx.graphics.requestRender() )

Обратите внимание, что это остановит весь рендеринг, поэтому, возможно, вместо этого просто приостановите движение по миру в своем вызове.

 if (!isPaused) {
   box2DWorld.step(TIME_STEP_IN_SECONDS,
                   VELOCITY_ITERATIONS,
                   POSITION_ITERATIONS);
}