-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathScore.cpp
More file actions
122 lines (104 loc) · 3.03 KB
/
Score.cpp
File metadata and controls
122 lines (104 loc) · 3.03 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
114
115
116
117
118
119
120
121
122
#include "Score.h"
#include <sstream>
#include <iostream>
#include <iomanip>
Score::Score(MyWindow* window) : Panel(window)
{
//Init
if (!font.loadFromFile("fonts/masterbreaker.ttf")) {}
if (!title.loadFromFile("images/menu/btn_score.png")) {};
if (!rank.loadFromFile("images/scoreboard/rank.png")) {};
if (!score.loadFromFile("images/scoreboard/score.png")) {};
if (!date.loadFromFile("images/scoreboard/date.png")) {};
back = new MyButton("images/settings/back.png", "images/settings/back_s.png");
_title = sf::Sprite(title);
_rank = sf::Sprite(rank);
_date = sf::Sprite(date);
_score = sf::Sprite(score);
for (size_t i = 0; i < 10; i++) {
ranks.push_back(new sf::Text(getWindow()->getConfig()->getLevelString(), font, 50));
scores.push_back(new sf::Text(getWindow()->getConfig()->getLevelString(), font, 50));
dates.push_back(new sf::Text(getWindow()->getConfig()->getLevelString(), font, 50));
ranks[i]->setFillColor(sf::Color(249, 148, 7));
scores[i]->setFillColor(sf::Color(249, 148, 7));
dates[i]->setFillColor(sf::Color(249, 148, 7));
}
//Init positions
_title.setPosition(468,30);
_rank.setPosition(331,142);
_score.setPosition(636,142);
_date.setPosition(1012,142);
back->setPosition(23, 28);
}
Score::~Score()
{
for (size_t i = 0; i < ranks.size(); i++) {
delete ranks[i];
}
for (size_t i = 0; i < scores.size(); i++) {
delete scores[i];
}
for (size_t i = 0; i < dates.size(); i++) {
delete dates[i];
}
delete back;
}
void Score::init()
{
getWindow()->clear();
back->setVolume(getWindow()->getConfig()->getVolume());
getWindow()->draw(getBackground());
std::stringstream ssRank, ssScore, ssDate;
for (size_t i = 0; i < 10; i++) {
if (i < getWindow()->getConfig()->getScores().size()) {
ssRank << "#" << i+1;
ssScore << getWindow()->getConfig()->getScores()[i];
ssDate << getWindow()->getConfig()->getDates()[i];
ranks[i]->setString(ssRank.str());
scores[i]->setString(ssScore.str());
dates[i]->setString(ssDate.str());
ranks[i]->setPosition(339, 172 + (61 * i));
scores[i]->setPosition(750-scores[i]->getLocalBounds().width, 172 + (61 * i));
dates[i]->setPosition(1106 - dates[i]->getLocalBounds().width, 172 + (61 * i));
getWindow()->draw(*ranks[i]);
getWindow()->draw(*scores[i]);
getWindow()->draw(*dates[i]);
ssRank.str(""); ssScore.str(""); ssDate.str("");
}
}
getWindow()->draw(_title);
getWindow()->draw(_rank);
getWindow()->draw(_score);
getWindow()->draw(_date);
getWindow()->draw(back->getSprite());
}
int Score::keyPressedOnce(sf::Keyboard::Key key)
{
switch (key) {
case(sf::Keyboard::Key::Escape): return Panel::PANEL_MENU; break;
}
return -1;
}
int Score::keyPressed(int key)
{
return -1;
}
int Score::mouseMove(int x, int y) {
if (back->isSelected(x, y)) {
back->changeTexture();
}
return -1;
}
int Score::mouseClicked(int x, int y, sf::Mouse::Button button)
{
if (button == sf::Mouse::Button::Left) {
if (back->isSelected(x, y)) {
return Panel::PANEL_MENU;
}
}
return -1;
}
int Score::getType() const
{
return Panel::PANEL_SCORE;
}