🔧 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>
37 lines
1.1 KiB
C++
37 lines
1.1 KiB
C++
#pragma once
|
|
|
|
constexpr char WINDOW_CAPTION[] = "vibe3_physics";
|
|
|
|
constexpr int SCREEN_WIDTH = 320;
|
|
constexpr int SCREEN_HEIGHT = 240;
|
|
constexpr int WINDOW_SIZE = 3;
|
|
constexpr int BALL_SIZE = 10;
|
|
constexpr float GRAVITY_FORCE = 0.2f;
|
|
|
|
// DEMO_SPEED eliminado - ya no se usa con delta time
|
|
constexpr Uint64 TEXT_DURATION = 2000;
|
|
|
|
// 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_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 {
|
|
int r, g, b;
|
|
};
|
|
|
|
// Enum para dirección de gravedad
|
|
enum class GravityDirection {
|
|
DOWN, // ↓ Gravedad hacia abajo (por defecto)
|
|
UP, // ↑ Gravedad hacia arriba
|
|
LEFT, // ← Gravedad hacia la izquierda
|
|
RIGHT // → Gravedad hacia la derecha
|
|
};
|
|
|
|
// Enum para temas de colores
|
|
enum class ColorTheme {
|
|
SUNSET = 0,
|
|
OCEAN = 1,
|
|
NEON = 2,
|
|
FOREST = 3
|
|
}; |