Input + moviment del jugador amb fletxes (flip, anim walk/stand, bounds) (v0.8.0)

This commit is contained in:
JailDesigner committed 2026-04-19 09:57:22 +02:00
1 parent bee9b650db
commit 96cbdf96b6
5 files changed
+99 -18

No files matched your search

+26 -3
View File
@@ -1,10 +1,33 @@
#pragma once
#include <SDL3/SDL.h>
#include "core/rendering/sprite/animated_sprite.hpp"
class Player : public AnimatedSprite {
public:
// Construeix el jugador a partir del recurs d'animació "player.yaml"
// ja registrat al cache. Comença en l'animació "stand".
Player(float x, float y);
// Mapeig de tecles per al moviment del jugador. Cada jugador local en pot
// tenir unes diferents; així podem afegir-ne més sense tocar el codi del
// Player, només instanciant amb Controls distints.
struct Controls {
SDL_Scancode up;
SDL_Scancode down;
SDL_Scancode left;
SDL_Scancode right;
};
// Sprite 12×24 amb perspectiva falsa: la base real del jugador són els
// 12×12 inferiors. Per això el bounding horitzontal és l'amplada completa,
// però verticalment permetem que el cap (12px superiors) isca fora de la
// pantalla — s'hi fa clipping natural al render.
static constexpr int SPRITE_WIDTH = 12;
static constexpr int SPRITE_HEIGHT = 24;
static constexpr int COLLISION_HEIGHT = 12;
Player(float x, float y, const Controls& controls);
void update(float delta_time) override;
private:
Controls controls_;
};