#pragma once #include // for SDL_FRect #include // for shared_ptr, unique_ptr #include "defines.h" // for Color #include "external/sprite.h" // for Sprite class Texture; class Ball { private: std::unique_ptr sprite_; // Sprite para pintar la clase SDL_FRect pos_; // Posición y tamaño de la pelota float vx_, vy_; // Velocidad float gravity_force_; // Gravedad Color color_; // Color de la pelota bool on_floor_; // Indica si la pelota está ya en el suelo bool stopped_; // Indica si la pelota ha terminado de moverse; float loss_; // Coeficiente de rebote. Pérdida de energía en cada rebote public: // Constructor Ball(float x, float vx, float vy, Color color, std::shared_ptr texture); // Destructor ~Ball() = default; // Actualiza la lógica de la clase void update(); // Pinta la clase void render(); // Modifica la velocidad void modVel(float vx, float vy); // Cambia la gravedad void switchGravity(); };