Время игры и пауза

Я пишу простую игру, где некоторые вещи случаются через некоторое время. Я использовал простой временной аналог структуры, которую я использую для планирования этих событий, однако я обнаружил, что не могу приостановить игру, потому что время постоянно увеличивается, и ничто не может остановить ее. Поэтому я решил использовать свое время, которое обновляется каждый вызов update() в дельта-время (пример в Lua):

current_time = 0.0

function update(dt)
    current_time = current_time + dt
end

Итак, я могу приостановить игру сейчас, просто не увеличивая время игры и ничего не делая (просто return) функция update). Вопрос в том, правильно ли я это делаю? Каждый движок игры делает это таким образом? Я просто не мог придумать какой-либо другой метод для реализации игрового времени с паузой.

P.S. Функция update вызывается в игровом цикле на каждой итерации. Fps заблокирован до константы.

4 голоса | спросил Victor Polevoy 15 32017vEurope/Moscow11bEurope/MoscowWed, 15 Nov 2017 14:16:13 +0300 2017, 14:16:13

1 ответ


1

Мой любимый способ приостановить игру:

void Update() {

    if (paused) {
        // handle paused state
        // maybe an animation is showing while game is paused
        // maybe something is moving around
        // actual game time is paused, but the app is still running
        return;
    }

    // Handle update
}

Таким образом, если игра приостановлена, внутри обновления она обработает приостановленный интерфейс, а затем вернется из Update(), чтобы он не выполнял Не обновляйте игру. Это зависит от того, какой язык программирования /языка программирования вы используете. Я использовал это, когда создавал пользовательский движок игры, и он работал удивительно хорошо.

ответил TomTsagk 9 MarpmFri, 09 Mar 2018 14:49:35 +03002018-03-09T14:49:35+03:0002 2018, 14:49:35

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132