getAnimations method

  1. @override
List<CharacterAnimation> getAnimations(
  1. double progress,
  2. int charCount
)
override

Generates per-character falling animation with brightness fade.

Implementation

@override
List<CharacterAnimation> getAnimations(double progress, int charCount) {
  if (charCount == 0) return [];

  final curved = applyCurve(progress);
  final returnT = sin(curved * pi);

  return List.generate(charCount, (index) {
    final n = noise(index);
    final fall = (curved * fallSpeed - n * 0.3).clamp(0.0, 1.0);
    final brightness = 1.0 - fall;

    return CharacterAnimation(
      color: returnT > 0.001
          ? matrixGreen.withValues(alpha: (0.2 + brightness * 0.8).clamp(0.0, 1.0))
          : null,
      translation: Offset(0, -fall * 30.0 * returnT),
      blurSigma: blurSigma * (1.0 - brightness) * returnT,
      opacity: 1.0 + ((0.3 + brightness * 0.7) - 1.0) * returnT,
    );
  });
}