Комментарии 6
Это очень сильно зависит от архитектуры игры. При классической архитектуре с game loop мы просто добавляем туда флаг, при наличии которого большинство игровых механик перестают обрабатываться в теле основного цикла. У вас, судя по всему, архитектура отсутствует в принципе. Также у вас ужасный стиль кода и не менее ужасное его форматирование. Не хочу показаться грубым, но, возможно, вам пока не стоило бы пытаться чему-то научить других?
Я бы рекомендовал вам почитать, например, вот это, если владеете аглицкой мовой. Ну или просто почитать что-нибудь)
Я бы рекомендовал вам почитать, например, вот это, если владеете аглицкой мовой. Ну или просто почитать что-нибудь)
+11
В целом, если переносить методологию работы игр из нативных приложений (C++/C# и так далее) на js, то именно «ресуроемкий» (Пример 2) используется повсеместно, ведь именно там находится считывание кнопок управления.
В случае игр на js следовало бы создать какой-то стейт, который в game loop рендерился бы, а пауза просто меняла логику внутри game loop так, чтобы реакции на кнопки управления не обрабатывались, рисовалось окно паузы и так далее. Хотелось бы всё равно иметь архитектуру.
А про оформление кода тут уже сказали, не буду повторяться.
В случае игр на js следовало бы создать какой-то стейт, который в game loop рендерился бы, а пауза просто меняла логику внутри game loop так, чтобы реакции на кнопки управления не обрабатывались, рисовалось окно паузы и так далее. Хотелось бы всё равно иметь архитектуру.
А про оформление кода тут уже сказали, не буду повторяться.
0
Автор, установите beautify plugin.
По теме — да, как написали выше, стейт «пауза» поможет в game loop, рендер вообще не надо трогать, на состояние должен смотреть апдейтер, или аналогичная сущность управляющая логикой игры.
По теме — да, как написали выше, стейт «пауза» поможет в game loop, рендер вообще не надо трогать, на состояние должен смотреть апдейтер, или аналогичная сущность управляющая логикой игры.
0
Когда сталкивался с этим вопросом, решал его именно простым условием
Кстати, requestAnimationFrame(loop) лучше вызывать перед телом loop.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Паузы в играх HTML5