Afegida la opció de crear els globos sense temps de creació en el balloon_manager
Modificat el mode demo per a que la primera oleada estiga ja creada
This commit is contained in:
@@ -107,11 +107,18 @@ void BalloonManager::deployBalloonFormation(int stage)
|
|||||||
last_balloon_deploy_ = formation;
|
last_balloon_deploy_ = formation;
|
||||||
|
|
||||||
const auto set = balloon_formations_->getSet(stage, formation);
|
const auto set = balloon_formations_->getSet(stage, formation);
|
||||||
const auto numEnemies = set.number_of_balloons;
|
const auto num_enemies = set.number_of_balloons;
|
||||||
for (int i = 0; i < numEnemies; ++i)
|
for (int i = 0; i < num_enemies; ++i)
|
||||||
{
|
{
|
||||||
auto p = set.init[i];
|
auto p = set.init[i];
|
||||||
createBalloon(p.x, p.y, p.type, p.size, p.vel_x, balloon_speed_, p.creation_counter);
|
createBalloon(
|
||||||
|
p.x,
|
||||||
|
p.y,
|
||||||
|
p.type,
|
||||||
|
p.size,
|
||||||
|
p.vel_x,
|
||||||
|
balloon_speed_,
|
||||||
|
(creation_time_enabled_) ? p.creation_counter : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
balloon_deploy_counter_ = 300;
|
balloon_deploy_counter_ = 300;
|
||||||
@@ -123,8 +130,8 @@ void BalloonManager::deployBalloonFormation(int stage)
|
|||||||
void BalloonManager::deploySet(int set_number)
|
void BalloonManager::deploySet(int set_number)
|
||||||
{
|
{
|
||||||
const auto set = balloon_formations_->getSet(set_number);
|
const auto set = balloon_formations_->getSet(set_number);
|
||||||
const auto numEnemies = set.number_of_balloons;
|
const auto num_enemies = set.number_of_balloons;
|
||||||
for (int i = 0; i < numEnemies; ++i)
|
for (int i = 0; i < num_enemies; ++i)
|
||||||
{
|
{
|
||||||
auto p = set.init[i];
|
auto p = set.init[i];
|
||||||
createBalloon(p.x, p.y, p.type, p.size, p.vel_x, balloon_speed_, p.creation_counter);
|
createBalloon(p.x, p.y, p.type, p.size, p.vel_x, balloon_speed_, p.creation_counter);
|
||||||
@@ -135,8 +142,8 @@ void BalloonManager::deploySet(int set_number)
|
|||||||
void BalloonManager::deploySet(int set_number, int y)
|
void BalloonManager::deploySet(int set_number, int y)
|
||||||
{
|
{
|
||||||
const auto set = balloon_formations_->getSet(set_number);
|
const auto set = balloon_formations_->getSet(set_number);
|
||||||
const auto numEnemies = set.number_of_balloons;
|
const auto num_enemies = set.number_of_balloons;
|
||||||
for (int i = 0; i < numEnemies; ++i)
|
for (int i = 0; i < num_enemies; ++i)
|
||||||
{
|
{
|
||||||
auto p = set.init[i];
|
auto p = set.init[i];
|
||||||
createBalloon(p.x, y, p.type, p.size, p.vel_x, balloon_speed_, p.creation_counter);
|
createBalloon(p.x, y, p.type, p.size, p.vel_x, balloon_speed_, p.creation_counter);
|
||||||
@@ -366,6 +373,21 @@ void BalloonManager::createTwoBigBalloons()
|
|||||||
deploySet(1);
|
deploySet(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Crea una disposición de globos aleatoria
|
||||||
|
void BalloonManager::createRandomBalloons()
|
||||||
|
{
|
||||||
|
const int num_balloons = 2 + rand() % 4;
|
||||||
|
for (int i = 0; i < num_balloons; ++i)
|
||||||
|
{
|
||||||
|
const float x = param.game.game_area.rect.x + (rand() % param.game.game_area.rect.w) - BALLOON_SIZE[3];
|
||||||
|
const int y = param.game.game_area.rect.y + (rand() % 50);
|
||||||
|
const BalloonSize size = static_cast<BalloonSize>(rand() % 4);
|
||||||
|
const float vel_x = (rand() % 2 == 0) ? BALLOON_VELX_POSITIVE : BALLOON_VELX_NEGATIVE;
|
||||||
|
const int creation_counter = 0;
|
||||||
|
createBalloon(x, y, BalloonType::BALLOON, size, vel_x, balloon_speed_, creation_counter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Obtiene el nivel de ameza actual generado por los globos
|
// Obtiene el nivel de ameza actual generado por los globos
|
||||||
int BalloonManager::getMenace()
|
int BalloonManager::getMenace()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ private:
|
|||||||
int power_ball_counter_ = 0; // Contador de formaciones enemigas entre la aparicion de una PowerBall y otra
|
int power_ball_counter_ = 0; // Contador de formaciones enemigas entre la aparicion de una PowerBall y otra
|
||||||
int last_balloon_deploy_ = 0; // Guarda cual ha sido la última formación desplegada para no repetir;
|
int last_balloon_deploy_ = 0; // Guarda cual ha sido la última formación desplegada para no repetir;
|
||||||
SDL_Rect play_area_ = param.game.play_area.rect; // Zona por donde se moveran los globos
|
SDL_Rect play_area_ = param.game.play_area.rect; // Zona por donde se moveran los globos
|
||||||
|
bool creation_time_enabled_ = true; // Indica si los globos se crean con tiempo
|
||||||
|
|
||||||
// Inicializa
|
// Inicializa
|
||||||
void init();
|
void init();
|
||||||
@@ -108,6 +109,9 @@ public:
|
|||||||
// Crea dos globos gordos
|
// Crea dos globos gordos
|
||||||
void createTwoBigBalloons();
|
void createTwoBigBalloons();
|
||||||
|
|
||||||
|
// Crea una disposición de globos aleatoria
|
||||||
|
void createRandomBalloons();
|
||||||
|
|
||||||
// Obtiene el nivel de ameza actual generado por los globos
|
// Obtiene el nivel de ameza actual generado por los globos
|
||||||
int getMenace();
|
int getMenace();
|
||||||
|
|
||||||
@@ -117,9 +121,11 @@ public:
|
|||||||
// Getters
|
// Getters
|
||||||
float getBalloonSpeed() const { return balloon_speed_; }
|
float getBalloonSpeed() const { return balloon_speed_; }
|
||||||
Balloons &getBalloons() { return balloons_; }
|
Balloons &getBalloons() { return balloons_; }
|
||||||
|
int getNumBalloons() const { return balloons_.size(); }
|
||||||
|
|
||||||
// Setters
|
// Setters
|
||||||
void setDefaultBalloonSpeed(float speed) { default_balloon_speed_ = speed; }
|
void setDefaultBalloonSpeed(float speed) { default_balloon_speed_ = speed; }
|
||||||
void resetBalloonSpeed() { setBalloonSpeed(default_balloon_speed_); }
|
void resetBalloonSpeed() { setBalloonSpeed(default_balloon_speed_); }
|
||||||
void setPlayArea(SDL_Rect play_area) { play_area_ = play_area; }
|
void setPlayArea(SDL_Rect play_area) { play_area_ = play_area; }
|
||||||
|
void setCreationTimeEnabled(bool value) { creation_time_enabled_ = value; }
|
||||||
};
|
};
|
||||||
@@ -1652,11 +1652,6 @@ void Game::initDemo(int player_id)
|
|||||||
Stage::total_power += Stage::get(i).power_to_complete;
|
Stage::total_power += Stage::get(i).power_to_complete;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pone al jugador en estado jugar
|
|
||||||
{
|
|
||||||
getPlayer(player_id)->setPlayingState(PlayerState::PLAYING);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Activa o no al otro jugador
|
// Activa o no al otro jugador
|
||||||
if (rand() % 3 != 0)
|
if (rand() % 3 != 0)
|
||||||
{
|
{
|
||||||
@@ -1680,6 +1675,9 @@ void Game::initDemo(int player_id)
|
|||||||
// Configura los marcadores
|
// Configura los marcadores
|
||||||
scoreboard_->setMode(SCOREBOARD_LEFT_PANEL, ScoreboardMode::DEMO);
|
scoreboard_->setMode(SCOREBOARD_LEFT_PANEL, ScoreboardMode::DEMO);
|
||||||
scoreboard_->setMode(SCOREBOARD_RIGHT_PANEL, ScoreboardMode::DEMO);
|
scoreboard_->setMode(SCOREBOARD_RIGHT_PANEL, ScoreboardMode::DEMO);
|
||||||
|
|
||||||
|
// Añade unos cuantos globos
|
||||||
|
// balloon_manager_->createRandomBalloons();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Modo grabar demo
|
// Modo grabar demo
|
||||||
@@ -1770,7 +1768,7 @@ void Game::initPlayers(int player_id)
|
|||||||
|
|
||||||
// Activa el jugador que coincide con el "player_id"
|
// Activa el jugador que coincide con el "player_id"
|
||||||
auto player = getPlayer(player_id);
|
auto player = getPlayer(player_id);
|
||||||
player->setPlayingState(PlayerState::ENTERING_SCREEN);
|
player->setPlayingState((demo_.enabled) ? PlayerState::PLAYING : PlayerState::ENTERING_SCREEN);
|
||||||
player->setInvulnerable(false);
|
player->setInvulnerable(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1816,6 +1814,8 @@ void Game::updateDemo()
|
|||||||
{
|
{
|
||||||
if (demo_.enabled)
|
if (demo_.enabled)
|
||||||
{
|
{
|
||||||
|
balloon_manager_->setCreationTimeEnabled((balloon_manager_->getNumBalloons() == 0) ? false : true);
|
||||||
|
|
||||||
// Actualiza ambos fades
|
// Actualiza ambos fades
|
||||||
fade_in_->update();
|
fade_in_->update();
|
||||||
fade_out_->update();
|
fade_out_->update();
|
||||||
|
|||||||
Reference in New Issue
Block a user