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
+4 -20
View File
@@ -80,26 +80,10 @@ void Bullet::disparar(const Vec2& position, float angle, uint8_t owner_id) {
}
void Bullet::update(float /*delta_time*/) {
if (!is_active_) {
return;
}
// El movimiento real lo hace PhysicsWorld::update() (integración).
// Aquí solo lógica de estado: detectar salida del PLAYAREA i desactivar.
// Sense marge de seguretat: la bala mor quan la seva aresta toca el border visual
// (centre a BULLET_RADIUS del límit). El MARGE_SEGURETAT de getSafePlayAreaBounds
// és per a spawn d'enemics, no per a desactivació de bales.
float min_x;
float max_x;
float min_y;
float max_y;
Constants::getPlayAreaBounds(min_x, max_x, min_y, max_y);
constexpr float R = Defaults::Entities::BULLET_RADIUS;
if (body_.position.x < min_x + R || body_.position.x > max_x - R ||
body_.position.y < min_y + R || body_.position.y > max_y - R) {
desactivar();
}
// No-op: la desactivació per fora-de-zona viu a
// Systems::Collision::desactivateOutOfBoundsBullets() perquè així té accés
// al DebrisManager i pot generar el "trencament" visual de la bala alhora.
// El moviment l'integra PhysicsWorld; postUpdate sincronitza center_ i prev_position_.
}
void Bullet::postUpdate(float /*delta_time*/) {