canvi de pc
This commit is contained in:
@@ -4,49 +4,46 @@
|
||||
#include "balloon.h" // Para Balloon, BALLOON_SCORE, BALLOON_VE...
|
||||
#include "balloon_formations.h" // Para BalloonFormations, BalloonFormatio...
|
||||
#include "resource.h"
|
||||
#include "game.h"
|
||||
#include "screen.h"
|
||||
#include "explosions.h" // Para Explosions
|
||||
#include "explosions.h" // Para Explosions
|
||||
#include "jail_audio.h"
|
||||
|
||||
// Constructor
|
||||
BalloonManager::BalloonManager()
|
||||
: explosions_(std::make_unique<Explosions>()),
|
||||
balloon_formations_(std::make_unique<BalloonFormations>())
|
||||
balloon_formations_(std::make_unique<BalloonFormations>()) {init();}
|
||||
|
||||
// Inicializa
|
||||
void BalloonManager::init()
|
||||
{
|
||||
// Texturas - Globos
|
||||
{
|
||||
balloon_textures_.emplace_back(Resource::get()->getTexture("balloon1.png"));
|
||||
balloon_textures_.emplace_back(Resource::get()->getTexture("balloon2.png"));
|
||||
balloon_textures_.emplace_back(Resource::get()->getTexture("balloon3.png"));
|
||||
balloon_textures_.emplace_back(Resource::get()->getTexture("balloon4.png"));
|
||||
balloon_textures_.emplace_back(Resource::get()->getTexture("powerball.png"));
|
||||
}
|
||||
// Texturas - Globos
|
||||
balloon_textures_.emplace_back(Resource::get()->getTexture("balloon1.png"));
|
||||
balloon_textures_.emplace_back(Resource::get()->getTexture("balloon2.png"));
|
||||
balloon_textures_.emplace_back(Resource::get()->getTexture("balloon3.png"));
|
||||
balloon_textures_.emplace_back(Resource::get()->getTexture("balloon4.png"));
|
||||
balloon_textures_.emplace_back(Resource::get()->getTexture("powerball.png"));
|
||||
|
||||
// Texturas - Explosiones
|
||||
{
|
||||
explosions_textures_.emplace_back(Resource::get()->getTexture("explosion1.png"));
|
||||
explosions_textures_.emplace_back(Resource::get()->getTexture("explosion2.png"));
|
||||
explosions_textures_.emplace_back(Resource::get()->getTexture("explosion3.png"));
|
||||
explosions_textures_.emplace_back(Resource::get()->getTexture("explosion4.png"));
|
||||
}
|
||||
// Animaciones -- Globos
|
||||
balloon_animations_.emplace_back(Resource::get()->getAnimation("balloon1.ani"));
|
||||
balloon_animations_.emplace_back(Resource::get()->getAnimation("balloon2.ani"));
|
||||
balloon_animations_.emplace_back(Resource::get()->getAnimation("balloon3.ani"));
|
||||
balloon_animations_.emplace_back(Resource::get()->getAnimation("balloon4.ani"));
|
||||
balloon_animations_.emplace_back(Resource::get()->getAnimation("powerball.ani"));
|
||||
|
||||
// Animaciones -- Globos
|
||||
{
|
||||
balloon_animations_.emplace_back(Resource::get()->getAnimation("balloon1.ani"));
|
||||
balloon_animations_.emplace_back(Resource::get()->getAnimation("balloon2.ani"));
|
||||
balloon_animations_.emplace_back(Resource::get()->getAnimation("balloon3.ani"));
|
||||
balloon_animations_.emplace_back(Resource::get()->getAnimation("balloon4.ani"));
|
||||
balloon_animations_.emplace_back(Resource::get()->getAnimation("powerball.ani"));
|
||||
}
|
||||
// Texturas - Explosiones
|
||||
explosions_textures_.emplace_back(Resource::get()->getTexture("explosion1.png"));
|
||||
explosions_textures_.emplace_back(Resource::get()->getTexture("explosion2.png"));
|
||||
explosions_textures_.emplace_back(Resource::get()->getTexture("explosion3.png"));
|
||||
explosions_textures_.emplace_back(Resource::get()->getTexture("explosion4.png"));
|
||||
|
||||
// Animaciones -- Explosiones
|
||||
{
|
||||
explosions_animations_.emplace_back(Resource::get()->getAnimation("explosion1.ani"));
|
||||
explosions_animations_.emplace_back(Resource::get()->getAnimation("explosion2.ani"));
|
||||
explosions_animations_.emplace_back(Resource::get()->getAnimation("explosion3.ani"));
|
||||
explosions_animations_.emplace_back(Resource::get()->getAnimation("explosion4.ani"));
|
||||
}
|
||||
// Animaciones -- Explosiones
|
||||
explosions_animations_.emplace_back(Resource::get()->getAnimation("explosion1.ani"));
|
||||
explosions_animations_.emplace_back(Resource::get()->getAnimation("explosion2.ani"));
|
||||
explosions_animations_.emplace_back(Resource::get()->getAnimation("explosion3.ani"));
|
||||
explosions_animations_.emplace_back(Resource::get()->getAnimation("explosion4.ani"));
|
||||
|
||||
// Añade texturas
|
||||
explosions_->addTexture(1, explosions_textures_[0], explosions_animations_[0]);
|
||||
explosions_->addTexture(2, explosions_textures_[1], explosions_animations_[1]);
|
||||
explosions_->addTexture(3, explosions_textures_[2], explosions_animations_[2]);
|
||||
@@ -102,7 +99,7 @@ void BalloonManager::deployBalloonFormation()
|
||||
|
||||
last_balloon_deploy_ = formation;
|
||||
|
||||
const auto set = balloon_formations_->getStage(current_stage_).balloon_pool.set[formation];
|
||||
const auto set = balloon_formations_->getStage(game_.getCurrentStage()).balloon_pool.set[formation];
|
||||
const auto numEnemies = set.number_of_balloons;
|
||||
for (int i = 0; i < numEnemies; ++i)
|
||||
{
|
||||
@@ -115,27 +112,6 @@ void BalloonManager::deployBalloonFormation()
|
||||
}
|
||||
}
|
||||
|
||||
// Gestiona el nivel de amenaza
|
||||
void BalloonManager::updateMenace()
|
||||
{
|
||||
const auto stage = balloon_formations_->getStage(current_stage_);
|
||||
const float percent = current_power_ / stage.power_to_complete;
|
||||
const int difference = stage.max_menace - stage.min_menace;
|
||||
|
||||
// Aumenta el nivel de amenaza en función de la puntuación
|
||||
menace_threshold_ = stage.min_menace + (difference * percent);
|
||||
|
||||
// Si el nivel de amenza es inferior al umbral
|
||||
if (menace_current_ < menace_threshold_)
|
||||
{
|
||||
// Crea una formación de enemigos
|
||||
deployBalloonFormation();
|
||||
|
||||
// Recalcula el nivel de amenaza con el nuevo globo
|
||||
evaluateAndSetMenace();
|
||||
}
|
||||
}
|
||||
|
||||
// Vacia del vector de globos los globos que ya no sirven
|
||||
void BalloonManager::freeBalloons()
|
||||
{
|
||||
@@ -144,14 +120,6 @@ void BalloonManager::freeBalloons()
|
||||
balloons_.erase(it, balloons_.end());
|
||||
}
|
||||
|
||||
// Calcula y establece el valor de amenaza en funcion de los globos activos
|
||||
void BalloonManager::evaluateAndSetMenace()
|
||||
{
|
||||
menace_current_ = std::accumulate(
|
||||
balloons_.begin(), balloons_.end(), 0, [](int sum, const auto &balloon)
|
||||
{ return sum + (balloon->isEnabled() ? balloon->getMenace() : 0); });
|
||||
}
|
||||
|
||||
// Actualiza la variable enemyDeployCounter
|
||||
void BalloonManager::updateBalloonDeployCounter()
|
||||
{
|
||||
@@ -225,7 +193,7 @@ void BalloonManager::checkAndUpdateBalloonSpeed()
|
||||
if (difficulty_ != GameDifficulty::NORMAL)
|
||||
return;
|
||||
|
||||
const float percent = static_cast<float>(current_power_) / balloon_formations_->getStage(current_stage_).power_to_complete;
|
||||
const float percent = static_cast<float>(game_.getCurrentPower()) / balloon_formations_->getStage(game_.getCurrentStage()).power_to_complete;
|
||||
const float thresholds[] = {0.2f, 0.4f, 0.6f, 0.8f};
|
||||
|
||||
for (size_t i = 0; i < std::size(thresholds); ++i)
|
||||
@@ -240,7 +208,7 @@ void BalloonManager::checkAndUpdateBalloonSpeed()
|
||||
// Explosiona un globo. Lo destruye y crea otros dos si es el caso
|
||||
void BalloonManager::popBalloon(std::shared_ptr<Balloon> balloon)
|
||||
{
|
||||
increaseStageCurrentPower(1);
|
||||
game_.increaseStageCurrentPower(1);
|
||||
balloons_popped_++;
|
||||
|
||||
if (balloon->getType() == BalloonType::POWERBALL)
|
||||
@@ -298,7 +266,7 @@ void BalloonManager::destroyBalloon(std::shared_ptr<Balloon> &balloon)
|
||||
|
||||
// Aumenta el poder de la fase
|
||||
const auto power = balloon->getPower();
|
||||
increaseStageCurrentPower(power);
|
||||
game_.increaseStageCurrentPower(power);
|
||||
balloons_popped_ += power;
|
||||
|
||||
// Destruye el globo
|
||||
@@ -310,7 +278,9 @@ void BalloonManager::destroyBalloon(std::shared_ptr<Balloon> &balloon)
|
||||
void BalloonManager::destroyAllBalloons()
|
||||
{
|
||||
for (auto &balloon : balloons_)
|
||||
{
|
||||
destroyBalloon(balloon);
|
||||
}
|
||||
|
||||
balloon_deploy_counter_ = 300;
|
||||
JA_PlaySound(Resource::get()->getSound("powerball.wav"));
|
||||
|
||||
Reference in New Issue
Block a user