nou: modificat el valor de velocitat en la creació dels globos verds. i tornat a deixar com estava
This commit is contained in:
@@ -16,7 +16,7 @@
|
||||
#include "utils.h"
|
||||
|
||||
// Constructor
|
||||
BalloonManager::BalloonManager(IStageInfo *stage_info)
|
||||
BalloonManager::BalloonManager(IStageInfo* stage_info)
|
||||
: explosions_(std::make_unique<Explosions>()),
|
||||
balloon_formations_(std::make_unique<BalloonFormations>()),
|
||||
stage_info_(stage_info) { init(); }
|
||||
@@ -64,7 +64,7 @@ void BalloonManager::init() {
|
||||
|
||||
// Actualiza (time-based)
|
||||
void BalloonManager::update(float deltaTime) {
|
||||
for (const auto &balloon : balloons_) {
|
||||
for (const auto& balloon : balloons_) {
|
||||
balloon->update(deltaTime);
|
||||
}
|
||||
updateBalloonDeployCounter(deltaTime);
|
||||
@@ -73,7 +73,7 @@ void BalloonManager::update(float deltaTime) {
|
||||
|
||||
// Renderiza los objetos
|
||||
void BalloonManager::render() {
|
||||
for (auto &balloon : balloons_) {
|
||||
for (auto& balloon : balloons_) {
|
||||
balloon->render();
|
||||
}
|
||||
explosions_->render();
|
||||
@@ -158,7 +158,7 @@ void BalloonManager::deployFormation(int formation_id, float y) {
|
||||
|
||||
// Vacia del vector de globos los globos que ya no sirven
|
||||
void BalloonManager::freeBalloons() {
|
||||
auto result = std::ranges::remove_if(balloons_, [](const auto &balloon) { return !balloon->isEnabled(); });
|
||||
auto result = std::ranges::remove_if(balloons_, [](const auto& balloon) { return !balloon->isEnabled(); });
|
||||
balloons_.erase(result.begin(), balloons_.end());
|
||||
}
|
||||
|
||||
@@ -173,7 +173,7 @@ auto BalloonManager::canPowerBallBeCreated() -> bool { return (!power_ball_enabl
|
||||
|
||||
// Calcula el poder actual de los globos en pantalla
|
||||
auto BalloonManager::calculateScreenPower() -> int {
|
||||
return std::accumulate(balloons_.begin(), balloons_.end(), 0, [](int sum, const auto &balloon) { return sum + (balloon->isEnabled() ? balloon->getPower() : 0); });
|
||||
return std::accumulate(balloons_.begin(), balloons_.end(), 0, [](int sum, const auto& balloon) { return sum + (balloon->isEnabled() ? balloon->getPower() : 0); });
|
||||
}
|
||||
|
||||
// Crea un globo nuevo en el vector de globos
|
||||
@@ -194,7 +194,7 @@ auto BalloonManager::createBalloon(Balloon::Config config) -> std::shared_ptr<Ba
|
||||
}
|
||||
|
||||
// Crea un globo a partir de otro globo
|
||||
void BalloonManager::createChildBalloon(const std::shared_ptr<Balloon> &balloon, const std::string &direction) {
|
||||
void BalloonManager::createChildBalloon(const std::shared_ptr<Balloon>& balloon, const std::string& direction) {
|
||||
if (can_deploy_balloons_) {
|
||||
// Calcula parametros
|
||||
const int PARENT_HEIGHT = balloon->getHeight();
|
||||
@@ -217,9 +217,22 @@ void BalloonManager::createChildBalloon(const std::shared_ptr<Balloon> &balloon,
|
||||
// Crea el globo
|
||||
auto b = createBalloon(config);
|
||||
|
||||
// Establece parametros (deltaTime en segundos - velocidades en pixels/segundo)
|
||||
constexpr float VEL_Y_BALLOON_PER_S = -150.0F; // -2.50 pixels/frame convertido a pixels/segundo (-2.50 * 60 = -150)
|
||||
b->setVelY(b->getType() == Balloon::Type::BALLOON ? VEL_Y_BALLOON_PER_S : Balloon::VELX_NEGATIVE * 2.0F);
|
||||
// Establece parametros
|
||||
constexpr float VEL_Y_BALLOON_PER_S = -150.0F;
|
||||
switch (b->getType()) {
|
||||
case Balloon::Type::BALLOON: {
|
||||
b->setVelY(VEL_Y_BALLOON_PER_S);
|
||||
break;
|
||||
}
|
||||
case Balloon::Type::FLOATER: {
|
||||
const float MODIFIER = (rand() % 2 == 0) ? 1.0F : 1.0F;
|
||||
b->setVelY(Balloon::VELX_NEGATIVE * 2.0F * MODIFIER);
|
||||
(rand() % 2 == 0) ? b->alterVelX(1.0F) : b->alterVelX(1.0F);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
// Herencia de estados
|
||||
if (balloon->isStopped()) { b->stop(); }
|
||||
@@ -267,13 +280,13 @@ void BalloonManager::createPowerBall() {
|
||||
// Establece la velocidad de los globos
|
||||
void BalloonManager::setBalloonSpeed(float speed) {
|
||||
balloon_speed_ = speed;
|
||||
for (auto &balloon : balloons_) {
|
||||
for (auto& balloon : balloons_) {
|
||||
balloon->setGameTempo(speed);
|
||||
}
|
||||
}
|
||||
|
||||
// Explosiona un globo. Lo destruye y crea otros dos si es el caso
|
||||
auto BalloonManager::popBalloon(const std::shared_ptr<Balloon> &balloon) -> int {
|
||||
auto BalloonManager::popBalloon(const std::shared_ptr<Balloon>& balloon) -> int {
|
||||
stage_info_->addPower(1);
|
||||
int score = 0;
|
||||
|
||||
@@ -298,7 +311,7 @@ auto BalloonManager::popBalloon(const std::shared_ptr<Balloon> &balloon) -> int
|
||||
}
|
||||
|
||||
// Explosiona un globo. Lo destruye = no crea otros globos
|
||||
auto BalloonManager::destroyBalloon(std::shared_ptr<Balloon> &balloon) -> int {
|
||||
auto BalloonManager::destroyBalloon(std::shared_ptr<Balloon>& balloon) -> int {
|
||||
int score = 0;
|
||||
|
||||
// Calcula la puntuación y el poder que generaria el globo en caso de romperlo a él y a sus hijos
|
||||
@@ -333,7 +346,7 @@ auto BalloonManager::destroyBalloon(std::shared_ptr<Balloon> &balloon) -> int {
|
||||
// Destruye todos los globos
|
||||
auto BalloonManager::destroyAllBalloons() -> int {
|
||||
int score = 0;
|
||||
for (auto &balloon : balloons_) {
|
||||
for (auto& balloon : balloons_) {
|
||||
score += destroyBalloon(balloon);
|
||||
}
|
||||
|
||||
@@ -346,7 +359,7 @@ auto BalloonManager::destroyAllBalloons() -> int {
|
||||
|
||||
// Detiene todos los globos
|
||||
void BalloonManager::stopAllBalloons() {
|
||||
for (auto &balloon : balloons_) {
|
||||
for (auto& balloon : balloons_) {
|
||||
if (!balloon->isBeingCreated()) {
|
||||
balloon->stop();
|
||||
}
|
||||
@@ -355,7 +368,7 @@ void BalloonManager::stopAllBalloons() {
|
||||
|
||||
// Pone en marcha todos los globos
|
||||
void BalloonManager::startAllBalloons() {
|
||||
for (auto &balloon : balloons_) {
|
||||
for (auto& balloon : balloons_) {
|
||||
if (!balloon->isBeingCreated()) {
|
||||
balloon->start();
|
||||
}
|
||||
@@ -364,7 +377,7 @@ void BalloonManager::startAllBalloons() {
|
||||
|
||||
// Cambia el color de todos los globos
|
||||
void BalloonManager::reverseColorsToAllBalloons() {
|
||||
for (auto &balloon : balloons_) {
|
||||
for (auto& balloon : balloons_) {
|
||||
if (balloon->isStopped()) {
|
||||
balloon->useReverseColor();
|
||||
}
|
||||
@@ -373,7 +386,7 @@ void BalloonManager::reverseColorsToAllBalloons() {
|
||||
|
||||
// Cambia el color de todos los globos
|
||||
void BalloonManager::normalColorsToAllBalloons() {
|
||||
for (auto &balloon : balloons_) {
|
||||
for (auto& balloon : balloons_) {
|
||||
balloon->useNormalColor();
|
||||
}
|
||||
}
|
||||
@@ -385,13 +398,13 @@ void BalloonManager::createTwoBigBalloons() {
|
||||
|
||||
// Obtiene el nivel de ameza actual generado por los globos
|
||||
auto BalloonManager::getMenace() -> int {
|
||||
return std::accumulate(balloons_.begin(), balloons_.end(), 0, [](int sum, const auto &balloon) { return sum + (balloon->isEnabled() ? balloon->getMenace() : 0); });
|
||||
return std::accumulate(balloons_.begin(), balloons_.end(), 0, [](int sum, const auto& balloon) { return sum + (balloon->isEnabled() ? balloon->getMenace() : 0); });
|
||||
}
|
||||
|
||||
// Establece el sonido de los globos
|
||||
void BalloonManager::setSounds(bool value) {
|
||||
sound_enabled_ = value;
|
||||
for (auto &balloon : balloons_) {
|
||||
for (auto& balloon : balloons_) {
|
||||
balloon->setSound(value);
|
||||
}
|
||||
}
|
||||
@@ -399,14 +412,14 @@ void BalloonManager::setSounds(bool value) {
|
||||
// Activa o desactiva los sonidos de rebote los globos
|
||||
void BalloonManager::setBouncingSounds(bool value) {
|
||||
bouncing_sound_enabled_ = value;
|
||||
for (auto &balloon : balloons_) {
|
||||
for (auto& balloon : balloons_) {
|
||||
balloon->setBouncingSound(value);
|
||||
}
|
||||
}
|
||||
// Activa o desactiva los sonidos de los globos al explotar
|
||||
void BalloonManager::setPoppingSounds(bool value) {
|
||||
poping_sound_enabled_ = value;
|
||||
for (auto &balloon : balloons_) {
|
||||
for (auto& balloon : balloons_) {
|
||||
balloon->setPoppingSound(value);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user