#include <GameBuilders.h>
Открытые члены | |
| void | create_rooms () override |
| Создаем все комнаты | |
| void | set_rooms_sides () override |
| CommonBuilder (float width, float height, float room_size) | |
Открытые члены унаследованные от CommonBuilder | |
| CommonBuilder (float width, float height, float room_size) | |
| void | create_context (float static_objects_ratio, float dynamic_objects_ratio, int players) override |
| Создает контекст для игры | |
| void | create_state (IStateManager &state_manager, const sf::VideoMode &mode, const std::string &window_title) override |
| Cоздаем состояние GameState, используя имя, режим окна и сслыку на менеджер состояний | |
| void | set_all_to_state () override |
| Созданный лабиринт и контекст назначаем созданному состоянию игры GameState. | |
| std::unique_ptr< GameState > | get_game () override |
| Получить результат строителя. | |
Дополнительные унаследованные члены | |
Защищенные данные унаследованные от CommonBuilder | |
| float | m_width |
| float | m_height |
| float | m_room_size |
| std::vector< std::vector< Room * > > | m_rooms |
| GameContext | m_context |
| std::unique_ptr< GameState > | m_game_state |
простой строитель для уровней EASY и MEDIUM
|
overridevirtual |
Создаем все комнаты
Сетку комнат храним в классе CommonBuilder В SimpleBuilder все возможное пространство заполняем комнатами. В set_rooms_sides() создаем проходы вправо/влево и вверх/вниз, стены делаем только на контуре. В ComplexBuilder формирует "решетчатый" лабиринт по алгоритму Эллера
слева "менюшка" и справа игра
Замещает IGameBuilder.
|
overridevirtual |
нулевая строка -> создаем стену сверху
создаем проходы сверху и снизу
если строка в нулевом столбце -> создаем стену слева
создаем проходы вправо и влево
если последняя строка -> создаем стену снизу
если комнаты в последнем столбце -> создаем стену справа
Замещает IGameBuilder.