precarrega les textures del jugador amb variants de paleta

This commit is contained in:
2025-08-10 19:36:10 +02:00
parent 72e606f6d3
commit 645862ecb5
11 changed files with 132 additions and 66 deletions

View File

@@ -22,7 +22,7 @@
// Constructor
Player::Player(const Config &config)
: player_sprite_(std::make_unique<AnimatedSprite>(config.texture.at(0), config.animations.at(0))),
power_sprite_(std::make_unique<AnimatedSprite>(config.texture.at(1), config.animations.at(1))),
power_sprite_(std::make_unique<AnimatedSprite>(config.texture.at(4), config.animations.at(1))),
enter_name_(std::make_unique<EnterName>()),
hi_score_table_(*config.hi_score_table),
glowing_entry_(*config.glowing_entry),
@@ -32,7 +32,10 @@ Player::Player(const Config &config)
default_pos_y_(config.y),
demo_(config.demo) {
// Configura objetos
player_sprite_->getTexture()->setPalette(coffees_);
player_sprite_->addTexture(config.texture.at(1));
player_sprite_->addTexture(config.texture.at(2));
player_sprite_->addTexture(config.texture.at(3));
player_sprite_->setActiveTexture(coffees_);
power_sprite_->getTexture()->setAlpha(224);
power_up_x_offset_ = (power_sprite_->getWidth() - player_sprite_->getWidth()) / 2;
power_sprite_->setPosY(default_pos_y_ - (power_sprite_->getHeight() - player_sprite_->getHeight()));
@@ -777,10 +780,10 @@ void Player::updateInvulnerable() {
if (invulnerable_) {
if (invulnerable_counter_ > 0) {
--invulnerable_counter_;
invulnerable_counter_ % 8 > 3 ? player_sprite_->getTexture()->setPalette(coffees_) : player_sprite_->getTexture()->setPalette(3);
invulnerable_counter_ % 8 > 3 ? player_sprite_->setActiveTexture(coffees_) : player_sprite_->setActiveTexture(3);
} else {
setInvulnerable(false);
player_sprite_->getTexture()->setPalette(coffees_);
player_sprite_->setActiveTexture(coffees_);
}
}
}
@@ -807,7 +810,7 @@ void Player::giveExtraHit() {
extra_hit_ = true;
if (coffees_ < 2) {
coffees_++;
player_sprite_->getTexture()->setPalette(coffees_);
player_sprite_->setActiveTexture(coffees_);
}
}
@@ -816,7 +819,7 @@ void Player::removeExtraHit() {
if (coffees_ > 0) {
coffees_--;
setInvulnerable(true);
player_sprite_->getTexture()->setPalette(coffees_);
player_sprite_->setActiveTexture(coffees_);
}
extra_hit_ = coffees_ != 0;