moguda la fisica del jugador a un fitxer yamal animal
This commit is contained in:
@@ -17,6 +17,10 @@
|
||||
|
||||
class Player {
|
||||
public:
|
||||
// --- Constantes de tamaño ---
|
||||
static constexpr int WIDTH = 8; // Ancho del jugador en pixels
|
||||
static constexpr int HEIGHT = 16; // Alto del jugador en pixels
|
||||
|
||||
// --- Enums y Structs ---
|
||||
enum class State {
|
||||
ON_GROUND, // En suelo plano o conveyor belt
|
||||
@@ -66,6 +70,7 @@ class Player {
|
||||
[[nodiscard]] auto isAlive() const -> bool { return is_alive_; } // Comprueba si el jugador esta vivo
|
||||
void setPaused(bool value) { is_paused_ = value; } // Pone el jugador en modo pausa
|
||||
auto handleKillingTiles() -> bool; // Comprueba que el jugador no toque ningun tile de los que matan
|
||||
void reloadPhysics(); // Recarga la configuración de física desde el archivo YAML
|
||||
|
||||
#ifdef _DEBUG
|
||||
// --- Funciones de debug ---
|
||||
@@ -74,20 +79,18 @@ class Player {
|
||||
#endif
|
||||
|
||||
private:
|
||||
// --- Constantes de tamaño ---
|
||||
static constexpr int WIDTH = 8; // Ancho del jugador en pixels
|
||||
static constexpr int HEIGHT = 16; // Alto del jugador en pixels
|
||||
// --- Configuración de física ---
|
||||
struct PhysicsConfig {
|
||||
float walk_velocity = 50.0F; // Velocidad al caminar (inmediata) en pixels/segundo
|
||||
float run_velocity = 80.0F; // Velocidad al correr en pixels/segundo
|
||||
float time_to_run = 0.8F; // Segundos caminando antes de empezar a correr
|
||||
float run_acceleration = 150.0F; // Aceleración de caminar a correr en pixels/segundo²
|
||||
float horizontal_deceleration = 250.0F; // Desaceleración al soltar (momentum) en pixels/segundo²
|
||||
float jump_velocity = -160.0F; // Impulso de salto en pixels/segundo (más fuerte, menos floaty)
|
||||
float gravity_force = 280.0F; // Gravedad en pixels/segundo² (más alta, menos floaty)
|
||||
};
|
||||
|
||||
// --- Constantes de movimiento horizontal ---
|
||||
static constexpr float WALK_VELOCITY = 50.0F; // Velocidad al caminar (inmediata) en pixels/segundo
|
||||
static constexpr float RUN_VELOCITY = 80.0F; // Velocidad al correr en pixels/segundo
|
||||
static constexpr float TIME_TO_RUN = 0.8F; // Segundos caminando antes de empezar a correr
|
||||
static constexpr float RUN_ACCELERATION = 150.0F; // Aceleración de caminar a correr en pixels/segundo²
|
||||
static constexpr float HORIZONTAL_DECELERATION = 250.0F; // Desaceleración al soltar (momentum) en pixels/segundo²
|
||||
|
||||
// --- Constantes de salto ---
|
||||
static constexpr float JUMP_VELOCITY = -160.0F; // Impulso de salto en pixels/segundo (más fuerte, menos floaty)
|
||||
static constexpr float GRAVITY_FORCE = 280.0F; // Gravedad en pixels/segundo² (más alta, menos floaty)
|
||||
PhysicsConfig physics_; // Configuración de física cargada desde YAML
|
||||
|
||||
// --- Objetos y punteros ---
|
||||
std::shared_ptr<Room> room_; // Objeto encargado de gestionar cada habitación del juego
|
||||
@@ -139,6 +142,7 @@ class Player {
|
||||
// --- Funciones de inicialización ---
|
||||
void initSprite(const std::string& animations_path); // Inicializa el sprite del jugador
|
||||
void applySpawnValues(const SpawnData& spawn); // Aplica los valores de spawn al jugador
|
||||
void loadPhysicsConfig(const std::string& path); // Carga la configuración de física desde YAML
|
||||
|
||||
// --- Funciones de procesamiento de entrada ---
|
||||
void handleInput(); // Comprueba las entradas y modifica variables
|
||||
|
||||
Reference in New Issue
Block a user