animateZoom method

void animateZoom({
  1. required double zoom,
  2. Duration? duration,
  3. VoidCallback? finish,
  4. Curve curve = Curves.decelerate,
})

Implementation

void animateZoom({
  required double zoom,
  Duration? duration,
  VoidCallback? finish,
  Curve curve = Curves.decelerate,
}) {
  if (zoom <= 0.0 || _isMoving) return;

  _isMoving = true;

  double diffZoom = config.zoom - (zoom);
  double initialZoom = config.zoom;

  gameRef.getValueGenerator(
    duration ?? Duration(seconds: 1),
    onChange: (value) {
      config.zoom = initialZoom - (diffZoom * value);
    },
    onFinish: () {
      _isMoving = false;
      finish?.call();
    },
    curve: curve,
  ).start();
}