forked from capocattiveria/Super_mario
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGameTime.cpp
63 lines (53 loc) · 1.2 KB
/
GameTime.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
#include "GameTime.h"
#include "Game.h"
#include "Hud.h"
GameTime::GameTime()
{
for (int i = 0; i < 3; i++)
{
panel_numbers.push_back(new QGraphicsPixmapItem());
panel_numbers[i]->setPos(129 + 8*i, 17);
addToGroup(panel_numbers[i]);
}
resetValues();
}
void GameTime::doUpdate(const std::string& update_info)
{
if (hundreds == 0 && dozens == 0 && units == 0)
{
Game::instance()->stopGameTime();
if (Game::instance()->getCurState() != "END_OF_LEVEL")
Game::instance()->gameover();
return;
}
if (dozens == 0 && units == 0)
{
if (Game::instance()->getCurState() != "END_OF_LEVEL")
{
if (hundreds == 1)
Game::instance()->hurryUp();
}
dozens = 10;
panel_numbers[0]->setPixmap(numbers[--hundreds]);
}
if (units == 0)
{
units = 10;
panel_numbers[1]->setPixmap(numbers[--dozens]);
}
panel_numbers[2]->setPixmap(numbers[--units]);
}
void GameTime::resetValues()
{
units = 0;
dozens = 0;
hundreds = 3;
panel_numbers[0]->setPixmap(numbers[hundreds]);
panel_numbers[1]->setPixmap(numbers[dozens]);
panel_numbers[2]->setPixmap(numbers[units]);
}
void GameTime::reset()
{
resetValues();
HudSubPanel::reset();
}