Implementar sistema de masa/peso individual por pelota
✨ Nueva característica: - Cada pelota tiene un factor de masa único que afecta la gravedad - Simula pelotas de diferente peso/densidad para física más realista 🔧 Implementación: - GRAVITY_MASS_MIN = 0.7f (pelotas ligeras - 70% gravedad) - GRAVITY_MASS_MAX = 1.3f (pelotas pesadas - 130% gravedad) - Factor aleatorio generado por pelota en initBalls() - Gravedad efectiva = gravity_force × mass_factor × deltaTime 📊 Comportamiento: - Pelotas ligeras (0.7): Caen 30% más lento, efecto "flotante" - Pelotas pesadas (1.3): Caen 30% más rápido, más "densas" - Variabilidad continua entre 0.7-1.3 para cada pelota 🎯 Resultado visual: - FIN del problema: "todas llegan al mismo tiempo" - Ahora las pelotas llegan escalonadas al cambiar gravedad - Física más realista y visualmente interesante 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -13,7 +13,8 @@ class Ball {
|
||||
std::unique_ptr<Sprite> 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
|
||||
float gravity_force_; // Gravedad base
|
||||
float gravity_mass_factor_; // Factor de masa individual (0.7-1.3, afecta gravedad)
|
||||
GravityDirection gravity_direction_; // Direcci\u00f3n de la gravedad
|
||||
Color color_; // Color de la pelota
|
||||
bool on_surface_; // Indica si la pelota est\u00e1 en la superficie (suelo/techo/pared)
|
||||
@@ -22,7 +23,7 @@ class Ball {
|
||||
|
||||
public:
|
||||
// Constructor
|
||||
Ball(float x, float vx, float vy, Color color, std::shared_ptr<Texture> texture, GravityDirection gravity_dir = GravityDirection::DOWN);
|
||||
Ball(float x, float vx, float vy, Color color, std::shared_ptr<Texture> texture, GravityDirection gravity_dir = GravityDirection::DOWN, float mass_factor = 1.0f);
|
||||
|
||||
// Destructor
|
||||
~Ball() = default;
|
||||
|
||||
Reference in New Issue
Block a user