Pacman
 
Загрузка...
Поиск...
Не найдено
Класс SimpleBuilder

#include <GameBuilders.h>

Граф наследования:SimpleBuilder:
CommonBuilder IGameBuilder

Открытые члены

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< GameStateget_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< GameStatem_game_state
 

Подробное описание

простой строитель для уровней EASY и MEDIUM

Методы

◆ create_rooms()

void SimpleBuilder::create_rooms ( )
overridevirtual

Создаем все комнаты

Сетку комнат храним в классе CommonBuilder В SimpleBuilder все возможное пространство заполняем комнатами. В set_rooms_sides() создаем проходы вправо/влево и вверх/вниз, стены делаем только на контуре. В ComplexBuilder формирует "решетчатый" лабиринт по алгоритму Эллера

слева "менюшка" и справа игра

Замещает IGameBuilder.

◆ set_rooms_sides()

void SimpleBuilder::set_rooms_sides ( )
overridevirtual

нулевая строка -> создаем стену сверху

создаем проходы сверху и снизу

если строка в нулевом столбце -> создаем стену слева

создаем проходы вправо и влево

если последняя строка -> создаем стену снизу

если комнаты в последнем столбце -> создаем стену справа

Замещает IGameBuilder.


Объявления и описания членов классов находятся в файлах: