-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHUD.cpp
95 lines (83 loc) · 2.93 KB
/
HUD.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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include "HUD.h"
HUD::HUD(Player* p) : player(p) {
if (!texture_hud.loadFromFile("Assets/HUD/hud.png")) {
cout << "erreur load" << endl;
}
if (!texture_shield1.loadFromFile("Assets/Chara/empty_shield.png") ||
!texture_shield2.loadFromFile("Assets/Chara/shield_5sec_cd.png") ||
!texture_shield3.loadFromFile("Assets/Chara/shield_10sec_cd.png") ||
!texture_shield4.loadFromFile("Assets/Chara/shield_15sec_cd.png") ||
!texture_shield5.loadFromFile("Assets/Chara/shield_20sec_cd.png") ||
!texture_shield6.loadFromFile("Assets/Chara/shield_full.png") ||
!texture_shield7.loadFromFile("Assets/Chara/shield_on.png")) {
std::cerr << "Erreur lors du chargement des textures du bouclier!" << std::endl;
}
hud_sprite.setTexture(texture_hud);
hud_sprite.setPosition(0, 758);
healthbar.setSize(Vector2f(145, 10));
healthbar.setFillColor(Color::Green);
healthbar.setPosition(4, 910);
ultbar.setSize(Vector2f(145, 10));
ultbar.setFillColor(Color::Cyan);
ultbar.setPosition(600, 910);
shieldbar.setPosition(660, 835);
shieldbar.setTexture(texture_shield1);
shieldbar.setScale(2, 2);
}
//727727
void HUD::hpupdate() {
if (player != nullptr) {
healthRatio = player->getHP() / player->getHPMax();
healthbar.setSize(Vector2f(145 * healthRatio, 10));
if (player->getHP() > player->getHPMax() / 2) {
healthbar.setFillColor(Color::Green);
}
else if (player->getHP() > player->getHPMax() / 3) {
healthbar.setFillColor(Color::Yellow);
}
else {
healthbar.setFillColor(Color::Red);
}
}
}
void HUD::ultupdate() {
if (player != nullptr) {
ultRatio = player->getUlt() / static_cast<float>(player->getUltMax());
if (ultRatio > 1.f) {
ultRatio = 1.f;
}
ultbar.setSize(Vector2f(145 * ultRatio, 10));
}
}
void HUD::shieldupdate() {
if (player != nullptr) {
player->setSprite();
if (player->getShieldCharge() == 0) {
shieldbar.setTexture(texture_shield1);
}
else if (player->getShieldCharge() == 5) {
shieldbar.setTexture(texture_shield2);
}
else if (player->getShieldCharge() == 10) {
shieldbar.setTexture(texture_shield3);
}
else if (player->getShieldCharge() == 15) {
shieldbar.setTexture(texture_shield4);
}
else if (player->getShieldCharge() == 20) {
shieldbar.setTexture(texture_shield5);
}
else if (player->getShieldCharge() == 25) {
shieldbar.setTexture(texture_shield6);
}
else if (player->getIsShielded() == true) {
shieldbar.setTexture(texture_shield7);
}
}
}
void HUD::drawhud(RenderWindow& window) {
window.draw(hud_sprite);
window.draw(healthbar);
window.draw(ultbar);
window.draw(shieldbar);
}