-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMenu.cpp
More file actions
113 lines (96 loc) · 2.31 KB
/
Menu.cpp
File metadata and controls
113 lines (96 loc) · 2.31 KB
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#include "Menu.h"
/*
Bom dia
Jogar
n jogadores? 1 ou 2
Fases? Mapas?
Opcoes
Ranking
*/
Menu::Menu() : Ente()
{
mudouEstado = false;
setPausa(true);
int frstL = '!';
int i, j;
Botao::inicializaLetras();
Estado::eInicial= new Inicial;
Estado::ePlay= new Play;
Estado::eLoad= new Load;
Estado::ePausa= new Pausa;
Estado::eRank= new Rank;
Estado::eSave = new Save;
pEstado = Estado::eInicial;
}
Menu::~Menu()
{
Botao::destroiLetras();
}
void Menu::executar(float dt)
{
sf::Event event;
sf::RenderWindow *rw = (gG->getWindow());
rw->pollEvent(event);
if(mudouEstado)
{
sf::sleep(sf::seconds(0.4));
mudouEstado = false;
}
Estado* e = pEstado;
pEstado = pEstado->eExecutar();
if(e != pEstado)
{
mudouEstado = true;
}
if(!pEstado)
{
gG->getWindow()->close();
}
if(pEstado->getFase())
{
if(pEstado->getFase()->getGanhou())
{
if(pEstado->getFase()->getTipo() == FASE1)
{
int pont = pEstado->getFase()->getJogador(1)->getPont(), pont2 = -1;
if(pEstado->getFase()->getMltplyr())
{
pont2 = pEstado->getFase()->getJogador(2)->getPont();
}
pEstado->getFase()->limpaFase();
pEstado->getFase()->~Fase();
pEstado->setFase(2);
pEstado->getFase()->getJogador(1)->somaPont(pont);
if(pont2 >= 0)
{
pEstado->getFase()->getJogador(2)->somaPont(pont2);
}
pausado = true;
pEstado->getFase()->setJogando(false);
}
}
}
}
Fase* Menu::getFase()
{
return(pEstado->getFase());
}
void Menu::imprimir()
{
int x = -gG->getWindow()->getView().getCenter().x + gG->getWindow()->getSize().x/2,
y = -gG->getWindow()->getView().getCenter().y + gG->getWindow()->getSize().y/2;
sf::RectangleShape r;
r.setTexture((*gG)[22]);
r.setSize(sf::Vector2f(gG->getWindow()->getSize()));
r.setOrigin(x, y);
gG->getWindow()->draw(r);
pEstado->imprimir();
}
void Menu::setPausa(bool p)
{
pausado = p;
}
const bool Menu::getPausa() const
{
return (pausado);
}