feat(playfield): ones d'aigua a la rejilla per explosions i pas de nau

This commit is contained in:
2026-05-22 19:22:09 +02:00
parent 044a3a3bbf
commit 88b002b277
4 changed files with 242 additions and 210 deletions
+9 -6
View File
@@ -75,9 +75,9 @@ GameScene::GameScene(SDLManager& sdl, SceneContext& context)
border_.bumpAt(hit.contact_point, STRENGTH);
});
// Fireworks generen un pulse a les línies V i H més properes del playfield.
// Fireworks generen una ripple gran al playfield (ona d'aigua centrada al burst).
firework_manager_.setSpawnCallback([this](Vec2 origen) {
playfield_.notifyFireworkSpawn(origen);
playfield_.notifyExplosion(origen);
});
// Explosions properes a una paret també generen bump (falloff lineal amb la distància).
@@ -216,10 +216,13 @@ void GameScene::stepPhysics(float delta_time) {
playfield_.update(delta_time);
border_.update(delta_time);
// Notificar al playfield que la nau ha passat (per excitar línies properes).
for (const auto& ship : ships_) {
if (ship.isActive()) {
playfield_.notifyShipPass(ship.getCenter(), ship.getSpeed());
// Notificar al playfield que la nau es mou (genera ripples petites a cadència).
for (std::size_t id = 0; id < ships_.size(); id++) {
if (ships_[id].isActive()) {
playfield_.notifyShipMoving(static_cast<std::uint8_t>(id),
ships_[id].getCenter(),
ships_[id].getSpeed(),
delta_time);
}
}
}