Corregir física de rebotes: solo pérdida, nunca ganancia de energía

🔧 Problema corregido:
- BOUNCE_VARIATION_PERCENT permitía rebotes con ganancia de energía (0.95-1.05)
- Pelotas podían rebotar más alto que su posición inicial (violaba física)

 Cambios aplicados:
- Renombrado: BOUNCE_VARIATION_PERCENT → BOUNCE_RANDOM_LOSS_PERCENT
- Valor aumentado: 0.05f (5%) → 0.1f (10%) para mayor variabilidad
- Lógica corregida: rango 0.90-1.00 (solo pérdida, nunca ganancia)
- Comentarios actualizados para claridad semántica

📊 Impacto físico:
- Antes: 0.75 × (0.95-1.05) = 0.7125-0.7875  (ganancia posible)
- Después: 0.75 × (0.90-1.00) = 0.675-0.750  (solo pérdida)

🎯 Resultado: Física realista - las pelotas siempre pierden energía en rebotes

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-09-18 17:46:07 +02:00
parent 19e1c414c2
commit e15c1f5349
2 changed files with 6 additions and 6 deletions

View File

@@ -11,9 +11,9 @@ constexpr float GRAVITY_FORCE = 0.2f;
// DEMO_SPEED eliminado - ya no se usa con delta time
constexpr Uint64 TEXT_DURATION = 2000;
// Configuración de variación aleatoria en rebotes
// Configuración de pérdida aleatoria en rebotes
constexpr float BASE_BOUNCE_COEFFICIENT = 0.75f; // Coeficiente base IGUAL para todas las pelotas
constexpr float BOUNCE_VARIATION_PERCENT = 0.05f; // ±5% variación en cada rebote
constexpr float BOUNCE_RANDOM_LOSS_PERCENT = 0.1f; // 0-10% pérdida adicional aleatoria en cada rebote
constexpr float LATERAL_LOSS_PERCENT = 0.02f; // ±2% pérdida lateral en rebotes
struct Color {