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:
@@ -350,7 +350,9 @@ void Engine::initBalls(int value) {
|
||||
const Color COLOR = {theme.ball_colors[color_index][0],
|
||||
theme.ball_colors[color_index][1],
|
||||
theme.ball_colors[color_index][2]};
|
||||
balls_.emplace_back(std::make_unique<Ball>(X, VX, VY, COLOR, texture_, current_gravity_));
|
||||
// Generar factor de masa aleatorio (0.7 = ligera, 1.3 = pesada)
|
||||
float mass_factor = GRAVITY_MASS_MIN + (rand() % 1000) / 1000.0f * (GRAVITY_MASS_MAX - GRAVITY_MASS_MIN);
|
||||
balls_.emplace_back(std::make_unique<Ball>(X, VX, VY, COLOR, texture_, current_gravity_, mass_factor));
|
||||
}
|
||||
setText(); // Actualiza el texto
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user