#include <GameBuilders.h>
Открытые члены | |
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 |
Получить результат строителя. | |
![]() | |
virtual void | create_rooms ()=0 |
virtual void | set_rooms_sides ()=0 |
Защищенные данные | |
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 |
создаем два конкретных строителя. Общие части выносим в CommonBuilder
|
overridevirtual |
Создает контекст для игры
Всегда в рандомное место располагаем пакмана. В качестве параметров передаем players, когда players = 2, создаем еще одного пакмана в рандомном месте. Дальше располагаем врагов в соотношении dynamic_objects_ratio, задаваемое в config.h, также в рандомные места. В оставшиеся свободные комнаты располагаем еду.
в рандомное место располагаем пакмана
располагаем врагов рандомно
располагаем еду на оставшиеся места
в рандомное место под едой располагаем скример
Замещает IGameBuilder.
|
overridevirtual |
Cоздаем состояние GameState, используя имя, режим окна и сслыку на менеджер состояний
Замещает IGameBuilder.
|
overridevirtual |
Получить результат строителя.
Замещает IGameBuilder.
|
overridevirtual |
Созданный лабиринт и контекст назначаем созданному состоянию игры GameState.
назначаем лабиринт
Замещает IGameBuilder.