mirror of
https://github.com/Nimac0/SDL_Minigame
synced 2026-01-12 13:43:41 +00:00
#66 removed UI elements from HealthComponent
This commit is contained in:
parent
a8e046ce07
commit
160ba5a2d9
@ -10,7 +10,7 @@ class HealthComponent : public Component
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
HealthComponent(int health, Direction side, std::string healthTexture) : health(health), side(side), healthTexture(healthTexture) {}
|
HealthComponent(int health) : health(health) {}
|
||||||
~HealthComponent() {}
|
~HealthComponent() {}
|
||||||
|
|
||||||
void modifyHealth(int health = -1);
|
void modifyHealth(int health = -1);
|
||||||
@ -26,6 +26,4 @@ public:
|
|||||||
private:
|
private:
|
||||||
|
|
||||||
int health;
|
int health;
|
||||||
Direction side;
|
|
||||||
std::string healthTexture;
|
|
||||||
};
|
};
|
||||||
@ -6,58 +6,14 @@
|
|||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
|
|
||||||
void HealthComponent::init()
|
void HealthComponent::init()
|
||||||
{
|
{}
|
||||||
refreshHearts();
|
|
||||||
}
|
|
||||||
|
|
||||||
void HealthComponent::modifyHealth(int health)
|
void HealthComponent::modifyHealth(int health)
|
||||||
{
|
{
|
||||||
this->health += health;
|
this->health += health;
|
||||||
this->refreshHearts();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void HealthComponent::setHealth(int health)
|
void HealthComponent::setHealth(int health)
|
||||||
{
|
{
|
||||||
this->health = health;
|
this->health = health;
|
||||||
this->refreshHearts();
|
|
||||||
}
|
|
||||||
|
|
||||||
void HealthComponent::refreshHearts()
|
|
||||||
{
|
|
||||||
// clear hearts if exist
|
|
||||||
for (auto& heart : this->entity->getManager().getGroup((size_t) Entity::GroupLabel::HEARTS)) {
|
|
||||||
if (heart->getTeam() == this->entity->getTeam()) {
|
|
||||||
heart->destroy();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int x; //starting position for first health icon
|
|
||||||
|
|
||||||
if(side == Direction::LEFT) {
|
|
||||||
x = 10;
|
|
||||||
} else {
|
|
||||||
x = 730;
|
|
||||||
}
|
|
||||||
|
|
||||||
for(int i = 0; i < health; i++) {
|
|
||||||
|
|
||||||
//checks for player side
|
|
||||||
if (side == Direction::LEFT) {
|
|
||||||
createHeartComponents(x);
|
|
||||||
x += 50;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
createHeartComponents(x);
|
|
||||||
x -= 50;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void HealthComponent::createHeartComponents(int x)
|
|
||||||
{
|
|
||||||
auto& heart(this->entity->getManager().addEntity());
|
|
||||||
heart.addComponent<TransformComponent>(x,5,2);
|
|
||||||
heart.addComponent<SpriteComponent>(this->healthTexture.data());
|
|
||||||
heart.addGroup((size_t)Entity::GroupLabel::HEARTS);
|
|
||||||
heart.setTeam(this->entity->getTeam());
|
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user