update method

void update(
  1. double dt
)

Call each frame to translate walk-in-place cadence into movement.

Implementation

void update(double dt) {
  final detector = walkInPlace;
  if (detector == null) return;

  final cadence = detector.cadence;
  final speed = cadence >= minMoveCadence
      ? (cadence / 120).clamp(0.0, 1.5)
      : 0.0;

  // Emit only on meaningful change to avoid flooding the stream.
  if ((speed - _lastMoveSpeed).abs() > 0.05 ||
      (speed == 0 && _lastMoveSpeed != 0)) {
    _lastMoveSpeed = speed.toDouble();
    _actions.add(MoveAction(speed: _lastMoveSpeed));
  }
}