corregits bugs de toquetechar vectors i merdes i passats a lists
This commit is contained in:
@@ -357,7 +357,7 @@ void Game::updateGameStateGameOver(float delta_time) {
|
||||
updatePathSprites(delta_time);
|
||||
updateTimeStopped(delta_time);
|
||||
bullet_manager_->checkCollisions();
|
||||
cleanVectors();
|
||||
cleanLists();
|
||||
|
||||
if (game_over_timer_ < GAME_OVER_DURATION_S) {
|
||||
game_over_timer_ += delta_time; // Incremento time-based primero
|
||||
@@ -391,7 +391,7 @@ void Game::updateGameStateCompleted(float delta_time) {
|
||||
updateItems(delta_time);
|
||||
updateSmartSprites(delta_time);
|
||||
updatePathSprites(delta_time);
|
||||
cleanVectors();
|
||||
cleanLists();
|
||||
|
||||
// Maneja eventos del juego completado
|
||||
handleGameCompletedEvents();
|
||||
@@ -684,16 +684,18 @@ void Game::createItem(ItemType type, float x, float y) {
|
||||
|
||||
// Vacia el vector de items
|
||||
void Game::freeItems() {
|
||||
if (!items_.empty()) {
|
||||
for (int i = items_.size() - 1; i >= 0; --i) {
|
||||
if (!items_[i]->isEnabled()) {
|
||||
if (items_[i]->getType() == ItemType::COFFEE_MACHINE) {
|
||||
coffee_machine_enabled_ = false;
|
||||
}
|
||||
items_.erase(items_.begin() + i);
|
||||
std::erase_if(items_, [&](const auto& item) {
|
||||
if (!item->isEnabled()) {
|
||||
// Comprobamos si hay que realizar una acción extra
|
||||
if (item->getType() == ItemType::COFFEE_MACHINE) {
|
||||
coffee_machine_enabled_ = false;
|
||||
}
|
||||
// Devolvemos 'true' para indicar que este elemento debe ser borrado.
|
||||
return true;
|
||||
}
|
||||
}
|
||||
// Devolvemos 'false' para conservarlo.
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
// Crea un objeto PathSprite
|
||||
@@ -730,26 +732,18 @@ void Game::createMessage(const std::vector<Path>& paths, const std::shared_ptr<T
|
||||
path_sprites_.back()->enable();
|
||||
}
|
||||
|
||||
// Vacia el vector de smartsprites
|
||||
// Vacia la lista de smartsprites
|
||||
void Game::freeSmartSprites() {
|
||||
if (!smart_sprites_.empty()) {
|
||||
for (int i = smart_sprites_.size() - 1; i >= 0; --i) {
|
||||
if (smart_sprites_[i]->hasFinished()) {
|
||||
smart_sprites_.erase(smart_sprites_.begin() + i);
|
||||
}
|
||||
}
|
||||
}
|
||||
std::erase_if(smart_sprites_, [](const auto& sprite) {
|
||||
return sprite->hasFinished();
|
||||
});
|
||||
}
|
||||
|
||||
// Vacia el vector de pathsprites
|
||||
// Vacia la lista de pathsprites
|
||||
void Game::freePathSprites() {
|
||||
if (!path_sprites_.empty()) {
|
||||
for (int i = path_sprites_.size() - 1; i >= 0; --i) {
|
||||
if (path_sprites_[i]->hasFinished()) {
|
||||
path_sprites_.erase(path_sprites_.begin() + i);
|
||||
}
|
||||
}
|
||||
}
|
||||
std::erase_if(path_sprites_, [](const auto& sprite) {
|
||||
return sprite->hasFinished();
|
||||
});
|
||||
}
|
||||
|
||||
// Crea un SpriteSmart para arrojar el item café al recibir un impacto
|
||||
@@ -1822,11 +1816,11 @@ void Game::updateGameStatePlaying(float delta_time) {
|
||||
updateMenace();
|
||||
checkAndUpdateBalloonSpeed();
|
||||
checkState();
|
||||
cleanVectors();
|
||||
cleanLists();
|
||||
}
|
||||
|
||||
// Vacía los vectores de elementos deshabilitados
|
||||
void Game::cleanVectors() {
|
||||
void Game::cleanLists() {
|
||||
bullet_manager_->freeBullets();
|
||||
balloon_manager_->freeBalloons();
|
||||
freeItems();
|
||||
|
||||
Reference in New Issue
Block a user