Implementar sistema de gravedad direccional con controles de cursor
- Añadir enum GravityDirection (UP/DOWN/LEFT/RIGHT) en defines.h - Modificar Ball class para soportar gravedad multi-direccional - Reescribir Ball::update() con lógica direccional completa - Cambiar on_floor_ por on_surface_ (más genérico) - Implementar detección de superficie según dirección de gravedad - Añadir controles de teclado con teclas de cursor - Actualizar debug display para mostrar dirección actual - Aplicar fricción correctamente según superficie activa Controles nuevos: - ↑/↓/←/→: Cambiar dirección de gravedad - H: Toggle debug display (incluye nueva info de gravedad) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
35
source/external/sprite.h
vendored
Normal file
35
source/external/sprite.h
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
#pragma once
|
||||
|
||||
#include <SDL3/SDL_rect.h> // for SDL_FRect, SDL_FPoint
|
||||
|
||||
#include <memory> // for shared_ptr
|
||||
class Texture;
|
||||
|
||||
class Sprite {
|
||||
private:
|
||||
std::shared_ptr<Texture> texture_; // Textura con los gráficos del sprite
|
||||
SDL_FRect pos_; // Posición y tamaño del sprite
|
||||
SDL_FRect clip_; // Parte de la textura que se va a dibujar
|
||||
|
||||
public:
|
||||
// Constructor
|
||||
explicit Sprite(std::shared_ptr<Texture> texture);
|
||||
|
||||
// Destructor
|
||||
~Sprite() = default;
|
||||
|
||||
// Establece la posición del sprite
|
||||
void setPos(SDL_FPoint pos);
|
||||
|
||||
// Pinta el sprite
|
||||
void render();
|
||||
|
||||
// Establece el rectangulo de la textura que se va a pintar
|
||||
void setClip(SDL_FRect clip);
|
||||
|
||||
// Establece el tamaño del sprite
|
||||
void setSize(float w, float h);
|
||||
|
||||
// Modulación de color
|
||||
void setColor(int r, int g, int b);
|
||||
};
|
||||
Reference in New Issue
Block a user