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. Я его использую как
контейнер для важных для игры данных - уровня, состояния рендера, разных тикеров,
каналов для рендера и ввода-вывода итп[1]. Так как он глобальный (или просто передается
по аргументам), то именно в него встроен метод Do.
контейнер для важных для игры данных - географии уровня, состояния объектов и мобов,
разных тикеров, каналов для рендера и ввода-вывода итп[1]. Так как он глобальный
(или просто передается всюду по аргументам), то именно в него встроен метод Do.
Если нам скажем в пакете, где описывается некий предмет, надо нарисовать при его
поднятии какой-то супер-эффект на экране - мы поступаем вот так:
@ -154,6 +154,4 @@ func renderSuperEffect() {
выполняется в main loop. В целом картина именно такая, но больше подробностей можно
найти по ссылкам в комментариях.
[1]: Если такой контейнер сериализовать (рекурсивно вместе со всем содержимым) и
записать на диск, то потом можно его прочитать и десериализовать. Получив тем самым почти
бесплатно Save / Load.
[1]: Если такой контейнер аккуратно сериализовать (рекурсивно вместе со всем содержимым) и записать на диск... То потом можно его прочитать и десериализовать. Получив тем самым почти бесплатно Save / Load.