#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);
}