23 lines
944 B
C++
23 lines
944 B
C++
#pragma once
|
|
|
|
#include "external/fkyaml_node.hpp"
|
|
#include "game/entities/hazard.hpp"
|
|
|
|
// Roca rodant: perill dinàmic amb trajectòria en línia recta. La direcció
|
|
// inicial ve del bloc `ai:` del YAML (right/left/up/down) i es pot
|
|
// sobreescriure per spawn. No canvia per ella mateixa; qui la vulgui
|
|
// rebotar/aturar ha de cridar `setDirection(0,0)` externament.
|
|
class RollingRock : public DynamicHazard {
|
|
public:
|
|
explicit RollingRock(const fkyaml::node& yaml);
|
|
|
|
// Avança en línia recta fins a la primera col·lisió: si la caixa
|
|
// candidata sortiria del playfield o trepitjaria un sarc, s'atura
|
|
// (direcció → 0,0) i l'actualització es manté en aquella posició fins
|
|
// que un agent extern la torni a empènyer. No rebota per decisió
|
|
// de disseny: la roca és trampa estàtica disfressada de dinàmica.
|
|
void step(float delta_time) override;
|
|
|
|
void onPlayerContact(Player* player) override;
|
|
};
|