Files
aee-arcade/source/game/entities/concrete/rolling_rock.hpp
T

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;
};