- Agregar zoom dinámico de ventana con F1/F2 - F1: reducir zoom hasta 1x mínimo - F2: aumentar zoom hasta máximo basado en resolución - Centrado inteligente al cambiar zoom - Cálculo correcto de zoom máximo usando SDL_GetCurrentDisplayMode() - F3: toggle fullscreen entre ventana y pantalla completa - Mover temas de colores de F1-F4 a teclado numérico (KP_1-4) - Mejorar resolución base a 640x480 con zoom inicial 2x - Resolver paths absolutos para data/ball.png 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
51 lines
2.0 KiB
C++
51 lines
2.0 KiB
C++
#pragma once
|
|
|
|
constexpr char WINDOW_CAPTION[] = "vibe3_physics";
|
|
|
|
constexpr int SCREEN_WIDTH = 640;
|
|
constexpr int SCREEN_HEIGHT = 480;
|
|
constexpr int WINDOW_ZOOM = 2; // Zoom inicial de la ventana
|
|
constexpr int BALL_SIZE = 10;
|
|
|
|
// Configuración de zoom dinámico de ventana
|
|
constexpr int WINDOW_ZOOM_MIN = 1; // Zoom mínimo (320x240)
|
|
constexpr int WINDOW_ZOOM_MAX = 10; // Zoom máximo teórico (3200x2400)
|
|
constexpr int WINDOW_DESKTOP_MARGIN = 10; // Margen mínimo con bordes del escritorio
|
|
constexpr int WINDOW_DECORATION_HEIGHT = 30; // Altura estimada de decoraciones del SO
|
|
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
|
|
|
|
// Configuración de masa/peso individual por pelota
|
|
constexpr float GRAVITY_MASS_MIN = 0.7f; // Factor mínimo de masa (pelota ligera - 70% gravedad)
|
|
constexpr float GRAVITY_MASS_MAX = 1.3f; // Factor máximo de masa (pelota pesada - 130% gravedad)
|
|
|
|
// Configuración de velocidad lateral al cambiar gravedad (muy sutil)
|
|
constexpr float GRAVITY_CHANGE_LATERAL_MIN = 0.04f; // Velocidad lateral mínima (2.4 px/s)
|
|
constexpr float GRAVITY_CHANGE_LATERAL_MAX = 0.08f; // Velocidad lateral máxima (4.8 px/s)
|
|
|
|
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
|
|
}; |