This commit is contained in:
anton.gurov 2019-11-08 14:45:13 +03:00
parent 2ea4020be7
commit 482ab67156

View File

@ -111,9 +111,9 @@ func MainLoop(state GameState) {
``` ```
State - это обычный Value Object, экземпляр типа GameState. Я его использую как State - это обычный Value Object, экземпляр типа GameState. Я его использую как
контейнер для важных для игры данных - уровня, состояния рендера, разных тикеров, контейнер для важных для игры данных - географии уровня, состояния объектов и мобов,
каналов для рендера и ввода-вывода итп[1]. Так как он глобальный (или просто передается разных тикеров, каналов для рендера и ввода-вывода итп[1]. Так как он глобальный
по аргументам), то именно в него встроен метод Do. (или просто передается всюду по аргументам), то именно в него встроен метод Do.
Если нам скажем в пакете, где описывается некий предмет, надо нарисовать при его Если нам скажем в пакете, где описывается некий предмет, надо нарисовать при его
поднятии какой-то супер-эффект на экране - мы поступаем вот так: поднятии какой-то супер-эффект на экране - мы поступаем вот так:
@ -154,6 +154,4 @@ func renderSuperEffect() {
выполняется в main loop. В целом картина именно такая, но больше подробностей можно выполняется в main loop. В целом картина именно такая, но больше подробностей можно
найти по ссылкам в комментариях. найти по ссылкам в комментариях.
[1]: Если такой контейнер сериализовать (рекурсивно вместе со всем содержимым) и [1]: Если такой контейнер аккуратно сериализовать (рекурсивно вместе со всем содержимым) и записать на диск... То потом можно его прочитать и десериализовать. Получив тем самым почти бесплатно Save / Load.
записать на диск, то потом можно его прочитать и десериализовать. Получив тем самым почти
бесплатно Save / Load.