Refinar modos DEMO: más dinamismo figuras/gravedad + textos del tema
CAMBIOS EN PESOS DEMO MODE: ✅ **Escenario: 10% → 2%** - Cambio MUY ocasional (mantiene cantidad actual) ✅ **Toggle gravedad ON/OFF: 8% → 15%** - ¡Ver caer pelotas sin gravedad! ✅ **Toggle física ↔ figura: 12% → 18%** - ¡Destruir figuras más frecuente! ✅ **Activar figura 3D: 20% → 22%** - Construir figuras ✅ **Re-generar figura: 8% → 10%** - Reconstruir después de destruir ✅ **Cambiar dirección gravedad: 10% → 12%** ✅ **Tema: 15% → 12%** ✅ **Impulso: 10% → 6%** ✅ **Profundidad/Escala/Sprite: 3%/2%/2% → 1%/1%/1%** - Muy ocasional RESULTADO: Mucho más dinámico y entretenido - Más "destrucción → caída → reconstrucción" - Mantiene mismo escenario más tiempo - Balance perfecto para embobarse viendo MEJORAS TEXTOS: ✅ **Eliminado display permanente** "DEMO MODE" / "DEMO LITE" ✅ **Texto solo al activar/desactivar** (como el resto) ✅ **Usa color del tema actual** (no naranja/azul fijos) ✅ **Centrado correctamente** con text_pos_ 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -158,17 +158,17 @@ constexpr float DEMO_ACTION_INTERVAL_MIN = 2.0f; // Tiempo mínimo entre accio
|
||||
constexpr float DEMO_ACTION_INTERVAL_MAX = 6.0f; // Tiempo máximo entre acciones (segundos)
|
||||
|
||||
// Pesos de probabilidad DEMO MODE (valores relativos, se normalizan)
|
||||
constexpr int DEMO_WEIGHT_GRAVITY_DIR = 10; // Cambiar dirección gravedad (10%)
|
||||
constexpr int DEMO_WEIGHT_GRAVITY_TOGGLE = 8; // Toggle gravedad ON/OFF (8%)
|
||||
constexpr int DEMO_WEIGHT_SHAPE = 20; // Activar figura 3D (20%)
|
||||
constexpr int DEMO_WEIGHT_TOGGLE_PHYSICS = 12; // Toggle física ↔ figura (12%)
|
||||
constexpr int DEMO_WEIGHT_REGENERATE_SHAPE = 8; // Re-generar misma figura (8%)
|
||||
constexpr int DEMO_WEIGHT_THEME = 15; // Cambiar tema de colores (15%)
|
||||
constexpr int DEMO_WEIGHT_SCENARIO = 10; // Cambiar número de pelotas (10%)
|
||||
constexpr int DEMO_WEIGHT_IMPULSE = 10; // Aplicar impulso (SPACE) (10%)
|
||||
constexpr int DEMO_WEIGHT_DEPTH_ZOOM = 3; // Toggle profundidad (3%)
|
||||
constexpr int DEMO_WEIGHT_SHAPE_SCALE = 2; // Cambiar escala figura (2%)
|
||||
constexpr int DEMO_WEIGHT_SPRITE = 2; // Cambiar sprite (2%)
|
||||
constexpr int DEMO_WEIGHT_GRAVITY_DIR = 12; // Cambiar dirección gravedad (12%)
|
||||
constexpr int DEMO_WEIGHT_GRAVITY_TOGGLE = 15; // Toggle gravedad ON/OFF (15%) - ¡Ver caer pelotas!
|
||||
constexpr int DEMO_WEIGHT_SHAPE = 22; // Activar figura 3D (22%) - Construir figuras
|
||||
constexpr int DEMO_WEIGHT_TOGGLE_PHYSICS = 18; // Toggle física ↔ figura (18%) - ¡Destruir figuras!
|
||||
constexpr int DEMO_WEIGHT_REGENERATE_SHAPE = 10; // Re-generar misma figura (10%) - Reconstruir
|
||||
constexpr int DEMO_WEIGHT_THEME = 12; // Cambiar tema de colores (12%)
|
||||
constexpr int DEMO_WEIGHT_SCENARIO = 2; // Cambiar número de pelotas (2%) - MUY OCASIONAL
|
||||
constexpr int DEMO_WEIGHT_IMPULSE = 6; // Aplicar impulso (SPACE) (6%)
|
||||
constexpr int DEMO_WEIGHT_DEPTH_ZOOM = 1; // Toggle profundidad (1%)
|
||||
constexpr int DEMO_WEIGHT_SHAPE_SCALE = 1; // Cambiar escala figura (1%)
|
||||
constexpr int DEMO_WEIGHT_SPRITE = 1; // Cambiar sprite (1%)
|
||||
// TOTAL: 100
|
||||
|
||||
// Configuración de Modo DEMO LITE (solo física/figuras)
|
||||
|
||||
@@ -484,13 +484,15 @@ void Engine::handleEvents() {
|
||||
float interval_range = DEMO_ACTION_INTERVAL_MAX - DEMO_ACTION_INTERVAL_MIN;
|
||||
demo_next_action_time_ = DEMO_ACTION_INTERVAL_MIN + (rand() % 1000) / 1000.0f * interval_range;
|
||||
|
||||
// Mostrar texto de activación
|
||||
// Mostrar texto de activación (usa color del tema)
|
||||
text_ = "DEMO MODE ON";
|
||||
text_pos_ = (current_screen_width_ - static_cast<int>(text_.length() * 8)) / 2;
|
||||
show_text_ = true;
|
||||
text_init_time_ = SDL_GetTicks();
|
||||
} else {
|
||||
// Al desactivar: mostrar texto
|
||||
text_ = "DEMO MODE OFF";
|
||||
text_pos_ = (current_screen_width_ - static_cast<int>(text_.length() * 8)) / 2;
|
||||
show_text_ = true;
|
||||
text_init_time_ = SDL_GetTicks();
|
||||
}
|
||||
@@ -511,13 +513,15 @@ void Engine::handleEvents() {
|
||||
float interval_range = DEMO_LITE_ACTION_INTERVAL_MAX - DEMO_LITE_ACTION_INTERVAL_MIN;
|
||||
demo_next_action_time_ = DEMO_LITE_ACTION_INTERVAL_MIN + (rand() % 1000) / 1000.0f * interval_range;
|
||||
|
||||
// Mostrar texto de activación
|
||||
// Mostrar texto de activación (usa color del tema)
|
||||
text_ = "DEMO LITE ON";
|
||||
text_pos_ = (current_screen_width_ - static_cast<int>(text_.length() * 8)) / 2;
|
||||
show_text_ = true;
|
||||
text_init_time_ = SDL_GetTicks();
|
||||
} else {
|
||||
// Al desactivar: mostrar texto
|
||||
text_ = "DEMO LITE OFF";
|
||||
text_pos_ = (current_screen_width_ - static_cast<int>(text_.length() * 8)) / 2;
|
||||
show_text_ = true;
|
||||
text_init_time_ = SDL_GetTicks();
|
||||
}
|
||||
@@ -662,21 +666,6 @@ void Engine::render() {
|
||||
dbg_print(8, 72, mode_text.c_str(), 0, 255, 128); // Verde claro para modo
|
||||
}
|
||||
|
||||
// Mostrar indicador "DEMO MODE" o "DEMO LITE" permanente (independiente de show_debug_)
|
||||
if (demo_mode_enabled_) {
|
||||
// Centrar texto horizontalmente
|
||||
const char* demo_text = "DEMO MODE";
|
||||
int demo_text_width = static_cast<int>(strlen(demo_text) * 8); // 8 píxeles por carácter
|
||||
int demo_x = (current_screen_width_ - demo_text_width) / 2;
|
||||
dbg_print(demo_x, 8, demo_text, 255, 128, 0); // Naranja brillante
|
||||
} else if (demo_lite_enabled_) {
|
||||
// Centrar texto horizontalmente
|
||||
const char* demo_lite_text = "DEMO LITE";
|
||||
int demo_lite_text_width = static_cast<int>(strlen(demo_lite_text) * 8);
|
||||
int demo_lite_x = (current_screen_width_ - demo_lite_text_width) / 2;
|
||||
dbg_print(demo_lite_x, 8, demo_lite_text, 128, 200, 255); // Azul claro
|
||||
}
|
||||
|
||||
SDL_RenderPresent(renderer_);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user