Modificada la cadencia de foc sense autofire i arreglades un poc les animacions de cool_down i cooling

This commit is contained in:
2025-01-04 10:47:26 +01:00
parent 5e817ef1d0
commit bccf4c30de
5 changed files with 67 additions and 54 deletions

View File

@@ -557,17 +557,17 @@ void Game::checkBulletBalloonCollision()
auto player = getPlayer(bullet->getOwner());
// Suelta el item si se da el caso
const auto droppeditem = dropItem();
if (droppeditem != ItemType::NONE && !demo_.recording)
const auto dropped_item = dropItem();
if (dropped_item != ItemType::NONE && !demo_.recording)
{
if (droppeditem != ItemType::COFFEE_MACHINE)
if (dropped_item != ItemType::COFFEE_MACHINE)
{
createItem(droppeditem, balloon->getPosX(), balloon->getPosY());
createItem(dropped_item, balloon->getPosX(), balloon->getPosY());
JA_PlaySound(Resource::get()->getSound("itemdrop.wav"));
}
else
{
createItem(droppeditem, player->getPosX(), 0);
createItem(dropped_item, player->getPosX(), param.game.game_area.rect.y - param.game.coffee_machine_h);
coffee_machine_enabled_ = true;
}
}
@@ -1257,7 +1257,14 @@ void Game::checkEvents()
}
case SDLK_8:
{
players_.at(0)->setPlayingState(PlayerState::LEAVING_SCREEN);
for (auto player : players_)
{
if (player->isPlaying())
{
createItem(ItemType::COFFEE_MACHINE, player->getPosX(), param.game.game_area.rect.y - param.game.coffee_machine_h);
break;
}
}
break;
}
case SDLK_9:
@@ -1481,8 +1488,10 @@ void Game::handleFireInput(const std::shared_ptr<Player> &player, BulletType bul
: InputType::FIRE_RIGHT);
createBullet(player->getPosX() + (player->getWidth() / 2) - 6, player->getPosY() + (player->getHeight() / 2), bulletType, player->isPowerUp(), player->getId());
JA_PlaySound(Resource::get()->getSound("bullet.wav"));
// Establece un tiempo de espera para el próximo disparo.
player->setFireCooldown(10);
const int cooldown = player->isPowerUp() ? 5 : options.game.autofire ? 10 : 7;
player->setFireCooldown(cooldown);
}
}
@@ -1492,15 +1501,18 @@ void Game::handlePlayersInput()
for (const auto &player : players_)
{
if (player->isPlaying())
{ // Maneja el input de los jugadores en modo normal.
{
// Maneja el input de los jugadores en modo normal.
handleNormalPlayerInput(player);
}
else if (player->isContinue() || player->isWaiting())
{ // Gestiona la continuación del jugador.
{
// Gestiona la continuación del jugador.
handlePlayerContinue(player);
}
else if (player->isEnteringName() || player->isEnteringNameGameCompleted())
{ // Gestiona la introducción del nombre del jugador.
{
// Gestiona la introducción del nombre del jugador.
handleNameInput(player);
}
}
@@ -1593,8 +1605,8 @@ void Game::handleNameInput(const std::shared_ptr<Player> &player)
{
player->setInput(InputType::START);
addScoreToScoreBoard(player->getRecordName(), player->getScore());
const auto status = player->getPlayingState();
player->setPlayingState(status == PlayerState::ENTERING_NAME ? PlayerState::CONTINUE : PlayerState::LEAVING_SCREEN);
const auto state = player->getPlayingState();
player->setPlayingState(state == PlayerState::ENTERING_NAME ? PlayerState::CONTINUE : PlayerState::LEAVING_SCREEN);
}
else
{
@@ -1617,8 +1629,8 @@ void Game::handleNameInput(const std::shared_ptr<Player> &player)
{
player->setInput(InputType::START);
addScoreToScoreBoard(player->getRecordName(), player->getScore());
const auto status = player->getPlayingState();
player->setPlayingState(status == PlayerState::ENTERING_NAME ? PlayerState::CONTINUE : PlayerState::LEAVING_SCREEN);
const auto state = player->getPlayingState();
player->setPlayingState(state == PlayerState::ENTERING_NAME ? PlayerState::CONTINUE : PlayerState::LEAVING_SCREEN);
}
}