feat(bullet): debris en trencar-se amb so HIT mogut des d'enemy.herir()

This commit is contained in:
2026-05-22 18:42:23 +02:00
parent bf79eecca0
commit 18e05e36e6
5 changed files with 69 additions and 27 deletions
+8 -3
View File
@@ -296,6 +296,7 @@ auto GameScene::stepContinueScreen(float delta_time) -> bool {
for (auto& bullet : bullets_) {
bullet.update(delta_time);
}
Systems::Collision::desactivateOutOfBoundsBullets(bullets_, debris_manager_);
debris_manager_.update(delta_time);
firework_manager_.update(delta_time);
floating_score_manager_.update(delta_time);
@@ -321,6 +322,7 @@ auto GameScene::stepGameOver(float delta_time) -> bool {
for (auto& bullet : bullets_) {
bullet.update(delta_time);
}
Systems::Collision::desactivateOutOfBoundsBullets(bullets_, debris_manager_);
debris_manager_.update(delta_time);
firework_manager_.update(delta_time);
floating_score_manager_.update(delta_time);
@@ -438,6 +440,7 @@ void GameScene::runStageLevelStart(float delta_time) {
for (auto& bullet : bullets_) {
bullet.update(delta_time);
}
Systems::Collision::desactivateOutOfBoundsBullets(bullets_, debris_manager_);
debris_manager_.update(delta_time);
firework_manager_.update(delta_time);
}
@@ -466,13 +469,14 @@ void GameScene::runStagePlaying(float delta_time) {
enemy.update(delta_time);
}
// Col·lisions primer, després `bullet.update()`: si una bala el mateix frame xoca
// amb un enemic i alhora surt del PLAYAREA, ha de comptar com a impacte abans de
// ser desactivada per fora-de-zona.
// Col·lisions primer, després desactivació per fora-de-zona: així una bala que
// el mateix frame xoca amb un enemic i alhora surt del PLAYAREA es compta com a
// impacte abans no se la trenqui per sortir.
runCollisionDetections();
for (auto& bullet : bullets_) {
bullet.update(delta_time);
}
Systems::Collision::desactivateOutOfBoundsBullets(bullets_, debris_manager_);
debris_manager_.update(delta_time);
firework_manager_.update(delta_time);
floating_score_manager_.update(delta_time);
@@ -490,6 +494,7 @@ void GameScene::runStageLevelCompleted(float delta_time) {
for (auto& bullet : bullets_) {
bullet.update(delta_time);
}
Systems::Collision::desactivateOutOfBoundsBullets(bullets_, debris_manager_);
debris_manager_.update(delta_time);
firework_manager_.update(delta_time);
floating_score_manager_.update(delta_time);