-
Notifications
You must be signed in to change notification settings - Fork 1
/
TitleScreen.cpp
75 lines (67 loc) · 1.96 KB
/
TitleScreen.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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/*
* TitleScreen.cpp
*
* Created on: Jul 17, 2017
* Author: Puzz
*/
#include "TitleScreen.h"
//empty constructor
TitleScreen::TitleScreen() {
canContinue = 0;
}
//empty destructor
TitleScreen::~TitleScreen() {
// TODO Auto-generated destructor stub
}
//Set continue flag
void TitleScreen::setContinue(bool canContinue){
this->canContinue = canContinue;
}
//handles the event - > when a button is pressed to
//return the state of the button
int TitleScreen::eventHandler(SDL_Event& e) {
int ButtonState=0;
//if enough time has passed
if(UI::debounce()){
ButtonState|=StartButton.isClicked(e);
ButtonState<<=1;
ButtonState|=(ContinueButton.isClicked(e)&&canContinue);
ButtonState<<=1;
ButtonState|=QuitButton.isClicked(e);
}
return ButtonState;
}
//fade in effect
void TitleScreen::fadeIn(){
StartButton.fadeIn(FADE_FACTOR);
ContinueButton.fadeIn(FADE_FACTOR);
QuitButton.fadeIn(FADE_FACTOR);
}
//fade out effect
void TitleScreen::fadeOut(){
StartButton.fadeOut(FADE_FACTOR);
ContinueButton.fadeOut(FADE_FACTOR);
QuitButton.fadeOut(FADE_FACTOR);
}
//initializes the buttons size and position
void TitleScreen::init() {
StartButton.setTexture(START_PATH);
ContinueButton.setTexture(CONTINUE_PATH);
QuitButton.setTexture(QUIT_PATH);
StartButton.setSize(BUTTON_WIDTH, BUTTON_HEIGHT);
ContinueButton.setSize(BUTTON_WIDTH, BUTTON_HEIGHT);
QuitButton.setSize(BUTTON_WIDTH, BUTTON_HEIGHT);
StartButton.setSFX(BUTTON_SFX);
ContinueButton.setSFX(BUTTON_SFX);
QuitButton.setSFX(BUTTON_SFX);
StartButton.setLocation((WIDTH-BUTTON_WIDTH)/2,HEIGHT-VERT_OFFSET-BUTTON_HEIGHT*4);
ContinueButton.setLocation((WIDTH-BUTTON_WIDTH)/2,HEIGHT-VERT_OFFSET-BUTTON_HEIGHT*3);
QuitButton.setLocation((WIDTH-BUTTON_WIDTH)/2,HEIGHT-VERT_OFFSET);
}
// render function that draws the image on the screen
void TitleScreen::render() {
//UI::render(); //calls the render method from the base class
StartButton.render();
if(canContinue) ContinueButton.render();
QuitButton.render();
}