Implementing the menu state
With most of the backend already covered, we're ready to move towards the front, and start working on more interactive aspects of the project, such as interfaces. Let's start by creating a main menu:
void State_MainMenu::OnCreate(){ auto context = m_stateMgr->GetContext(); GUI_Manager* gui = context->m_guiManager; gui->LoadInterface("MainMenu.interface", "MainMenu"); gui->GetInterface("MainMenu")->SetPosition( sf::Vector2f(250.f, 168.f)); EventManager* eMgr = context->m_eventManager; eMgr->AddCallback("MainMenu_Play", &State_MainMenu::Play, this); eMgr->AddCallback("MainMenu_Quit", &State_MainMenu::Quit, this); }
All of these classes have already been covered in Chapter 1
, Under the Hood - Setting up the Backend, but let us have a quick rundown of what this does once more. After we obtain the shared context, a main menu interface is loaded and positioned on screen. The m_eventManager
is then used to bind...