feat(playfield): ones d'aigua a la rejilla per explosions i pas de nau
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user