Sistema de convergencia para LOGO MODE (resolución escalable)
Implementa sistema adaptativo que evita interrupciones prematuras en resoluciones altas. El timing ahora se ajusta según convergencia de partículas en lugar de usar intervalos fijos. Cambios: - Ball: getDistanceToTarget() para medir distancia a objetivo - Engine: shape_convergence_, logo_convergence_threshold_ y tiempos escalados - defines.h: LOGO_CONVERGENCE_MIN/MAX (75-100%) - updateShape(): Cálculo de % de pelotas convergidas - toggleShapeMode(): Genera threshold aleatorio al entrar en LOGO - setState(): Escala logo_min/max_time con resolución (base 720p) - updateDemoMode(): Dispara cuando (tiempo>=MIN AND convergencia>=threshold) OR tiempo>=MAX Funcionamiento: 1. Al entrar a SHAPE en LOGO: threshold random 75-100%, tiempos escalados con altura 2. Cada frame: calcula % pelotas cerca de objetivo (shape_convergence_) 3. Dispara acción cuando: (tiempo>=MIN AND convergencia>=threshold) OR tiempo>=MAX 4. Resultado: En 720p funciona como antes, en 1440p espera convergencia real 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -91,6 +91,7 @@ class Ball {
|
||||
|
||||
// Sistema de atracción física hacia figuras 3D
|
||||
void enableRotoBallAttraction(bool enable);
|
||||
float getDistanceToTarget() const; // Distancia actual al punto objetivo
|
||||
void applyRotoBallForce(float target_x, float target_y, float sphere_radius, float deltaTime,
|
||||
float spring_k = ROTOBALL_SPRING_K,
|
||||
float damping_base = ROTOBALL_DAMPING_BASE,
|
||||
|
||||
Reference in New Issue
Block a user