treballant en la nova clase Player

This commit is contained in:
2025-11-05 14:15:00 +01:00
parent a20ea5299d
commit 288e01e47f
7 changed files with 970 additions and 63 deletions

View File

@@ -23,6 +23,12 @@ class Player {
FALLING,
};
enum class Direction {
LEFT,
RIGHT,
STAY
};
struct SpawnData {
float x = 0;
float y = 0;
@@ -105,6 +111,9 @@ class Player {
float vx_ = 0.0F; // Velocidad/desplazamiento del jugador en el eje X
float vy_ = 0.0F; // Velocidad/desplazamiento del jugador en el eje Y
Direction wannaGo = Direction::STAY;
bool wannaJump = false;
// --- Variables de estado ---
State state_ = State::STANDING; // Estado en el que se encuentra el jugador. Util apara saber si está saltando o cayendo
State previous_state_ = State::STANDING; // Estado previo en el que se encontraba el jugador
@@ -128,13 +137,20 @@ class Player {
std::vector<JA_Sound_t*> jumping_sound_; // Vecor con todos los sonidos del salto
std::vector<JA_Sound_t*> falling_sound_; // Vecor con todos los sonidos de la caída
void handleHorizontalMovement(float delta_time);
void handleVerticalMovement(float delta_time);
void handleConveyorBelts();
void handleShouldFall();
void updateState();
void moveAndCollide(float delta_time);
// --- Funciones de inicialización ---
void initSprite(const std::string& animations_path); // Inicializa el sprite del jugador
void initSounds(); // Inicializa los sonidos de salto y caida
void applySpawnValues(const SpawnData& spawn); // Aplica los valores de spawn al jugador
// --- Funciones de procesamiento de entrada ---
void handleInput(float delta_time); // Comprueba las entradas y modifica variables
void handleInput(); // Comprueba las entradas y modifica variables
// --- Funciones de gestión de estado ---
void handleState(float delta_time); // Comprueba el estado del jugador y actualiza variables
@@ -151,9 +167,9 @@ class Player {
void handleSlopeMovement(int direction); // Maneja el movimiento sobre rampas
// --- Funciones de detección de superficies ---
auto isOnFloor() -> bool; // Comprueba si el jugador tiene suelo debajo de los pies
auto isOnAutoSurface() -> bool; // Comprueba si el jugador esta sobre una superficie automática
auto isOnDownSlope() -> bool; // Comprueba si el jugador está sobre una rampa hacia abajo
auto isOnFloor() -> bool; // Comprueba si el jugador tiene suelo debajo de los pies
auto isOnConveyorBelt() -> bool; // Comprueba si el jugador esta sobre una superficie automática
auto isOnDownSlope() -> bool; // Comprueba si el jugador está sobre una rampa hacia abajo
// --- Funciones de actualización de geometría ---
void updateColliderGeometry(); // Actualiza collider_box y collision points