feat(player): animacions direccionals i stand automàtic en col·lisió; v0.18.0
This commit is contained in:
1 parent
13ae4a51a4
commit
a3592d6c73
4 files changed
+135
-10
No files matched your search
@@ -2,6 +2,7 @@
|
||||
|
||||
#include <SDL3/SDL.h>
|
||||
|
||||
#include <cstdint>
|
||||
#include <string>
|
||||
#include <utility>
|
||||
|
||||
@@ -81,6 +82,10 @@ class Player : public AnimatedSprite {
|
||||
// wrappers deleguen a `snapToLane` només canviant l'eix actiu.
|
||||
void snapToHorizontalLane(float delta_time);
|
||||
void snapToVerticalLane(float delta_time);
|
||||
|
||||
// Nom d'animació per al `facing_` actual. Si `moving` és cert s'usa
|
||||
// la variant `walk*`, altrament la variant `stand*`.
|
||||
[[nodiscard]] auto animationName(bool moving) const -> const char*;
|
||||
void snapToLane(
|
||||
float delta_time,
|
||||
float base,
|
||||
@@ -91,6 +96,16 @@ class Player : public AnimatedSprite {
|
||||
|
||||
Controls controls_;
|
||||
|
||||
// Direcció "cap on mira" el jugador. Governa quin conjunt d'animacions
|
||||
// s'aplica (lateral, amunt, avall) i si el sprite es flipeja o no. Els
|
||||
// moviments purament horitzontals o diagonals prenen `SIDE` (prevalença
|
||||
// lateral), els purament verticals fan `UP`/`DOWN`. En aturar-se es
|
||||
// preserva l'última orientació perquè la versió stand coincideixi.
|
||||
enum class Facing : std::uint8_t { SIDE,
|
||||
UP,
|
||||
DOWN };
|
||||
Facing facing_{Facing::SIDE};
|
||||
|
||||
// Bus del nivell (opcional). Propietat externa (EntityManager); el
|
||||
// Player només en guarda un punter per publicar events.
|
||||
EventBus* bus_{nullptr};
|
||||
|
||||
Reference in new issue
Block a user