update method

void update(
  1. double dt
)

Tick principal - llamar cada frame

Implementation

void update(double dt) {
  if (freeMode || !isUserTouching) {
    _updateFreeMode(dt);
  } else {
    _updateGuidedMode(dt);
  }

  // Actualizar color de esfera según fase
  sphereColor = Color.lerp(
    sphereColor,
    phaseColors[phase]!,
    dt * 3.0,
  )!;

  // Actualizar radio con audio
  final baseRadius = 35.0 + (canvasWidth * 0.05);
  sphereRadius = baseRadius + (audioAmplitude * 15.0) + (sin(audioPhase * 2) * 5.0);

  // Actualizar intensidad del glow según atención
  glowIntensity = 0.4 + (attentionScore * 0.6);

  notifyListeners();
}