Compare commits
2 Commits
b586a117c8
...
e887c2a2ab
| Author | SHA1 | Date | |
|---|---|---|---|
| e887c2a2ab | |||
| f573bd02ac |
@@ -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();
|
||||||
|
|||||||
@@ -3,30 +3,30 @@
|
|||||||
|
|
||||||
namespace Mouse
|
namespace Mouse
|
||||||
{
|
{
|
||||||
Uint32 cursorHideTime = 3000; // Tiempo en milisegundos para ocultar el cursor
|
Uint32 cursor_hide_time = 3000; // Tiempo en milisegundos para ocultar el cursor
|
||||||
Uint32 lastMouseMoveTime = 0; // Última vez que el ratón se movió
|
Uint32 last_mouse_move_time = 0; // Última vez que el ratón se movió
|
||||||
bool cursorVisible = true; // Estado del cursor
|
bool cursor_visible = true; // Estado del cursor
|
||||||
|
|
||||||
void handleEvent(const SDL_Event &event)
|
void handleEvent(const SDL_Event &event)
|
||||||
{
|
{
|
||||||
if (event.type == SDL_MOUSEMOTION)
|
if (event.type == SDL_MOUSEMOTION)
|
||||||
{
|
{
|
||||||
lastMouseMoveTime = SDL_GetTicks();
|
last_mouse_move_time = SDL_GetTicks();
|
||||||
if (!cursorVisible)
|
if (!cursor_visible)
|
||||||
{
|
{
|
||||||
SDL_ShowCursor(SDL_ENABLE);
|
SDL_ShowCursor(SDL_ENABLE);
|
||||||
cursorVisible = true;
|
cursor_visible = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void updateCursorVisibility()
|
void updateCursorVisibility()
|
||||||
{
|
{
|
||||||
Uint32 currentTime = SDL_GetTicks();
|
Uint32 current_time = SDL_GetTicks();
|
||||||
if (cursorVisible && (currentTime - lastMouseMoveTime > cursorHideTime))
|
if (cursor_visible && (current_time - last_mouse_move_time > cursor_hide_time))
|
||||||
{
|
{
|
||||||
SDL_ShowCursor(SDL_DISABLE);
|
SDL_ShowCursor(SDL_DISABLE);
|
||||||
cursorVisible = false;
|
cursor_visible = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,9 +3,9 @@
|
|||||||
|
|
||||||
namespace Mouse
|
namespace Mouse
|
||||||
{
|
{
|
||||||
extern Uint32 cursorHideTime; // Tiempo en milisegundos para ocultar el cursor
|
extern Uint32 cursor_hide_time; // Tiempo en milisegundos para ocultar el cursor
|
||||||
extern Uint32 lastMouseMoveTime; // Última vez que el ratón se movió
|
extern Uint32 last_mouse_move_time; // Última vez que el ratón se movió
|
||||||
extern bool cursorVisible; // Estado del cursor
|
extern bool cursor_visible; // Estado del cursor
|
||||||
|
|
||||||
void handleEvent(const SDL_Event &event);
|
void handleEvent(const SDL_Event &event);
|
||||||
void updateCursorVisibility();
|
void updateCursorVisibility();
|
||||||
|
|||||||
Reference in New Issue
Block a user