-
Notifications
You must be signed in to change notification settings - Fork 1
/
MainMenuState.cpp
55 lines (48 loc) · 1.78 KB
/
MainMenuState.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include<sstream>
#include"MainMenuState.h"
#include"GameState.h"
#include"DEFINITIONS.h"
#include<iostream>
namespace game
{
MainMenuState::MainMenuState(GameDataRef data):_data(data)
{
}
void MainMenuState::Init()
{
this->_data->assets.LoadTexture("Main Menu Background",MAIN_MENU_BACKGROUND_FILEPATH);
this->_data->assets.LoadTexture("Game Title",GAME_TITLE_FILEPATH);
this->_data->assets.LoadTexture("Play Button",PLAY_BUTTON_FILEPATH);
_background.setTexture(this->_data->assets.GetTexture("Main Menu Background"));
_title.setTexture(this->_data->assets.GetTexture("Game Title"));
_playButton.setTexture(this->_data->assets.GetTexture("Play Button"));
_title.setPosition((SCREEN_WIDTH/2)-(_title.getGlobalBounds().width/2),_title.getGlobalBounds().height/2);
_playButton.setPosition((SCREEN_WIDTH/2)-(_playButton.getGlobalBounds().width/2),(SCREEN_HEIGHT/2)-(_playButton.getGlobalBounds().height/2));
}
void MainMenuState::HandleInput()
{
sf::Event event;
while(this->_data->window.pollEvent(event))
{
if(sf::Event::Closed==event.type)
{
this->_data->window.close();
}
if(this->_data->input.IsSpriteClicked(_playButton,sf::Mouse::Left,this->_data->window))
{
this->_data->machine.AddState(StateRef(new GameState(this->_data)),true);
}
}
}
void MainMenuState::Update(float dt)
{
}
void MainMenuState::Draw(float dt)
{
this->_data->window.clear(sf::Color::Red);
this->_data->window.draw(_background);
this->_data->window.draw(_title);
this->_data->window.draw(_playButton);
this->_data->window.display();
}
}