SplitFlapRowPainter constructor

SplitFlapRowPainter({
  1. required double val,
  2. required List<int> currentIndices,
  3. required List<int> remainingSteps,
  4. required double unitWidth,
  5. required double unitHeight,
  6. required double spacing,
  7. required Image spriteSheet,
})

Implementation

SplitFlapRowPainter({
  required this.val,
  required this.currentIndices,
  required this.remainingSteps,
  required this.unitWidth,
  required this.unitHeight,
  required this.spacing,
  required this.spriteSheet,
}) {
  final String key = "${unitWidth.toInt()}-${unitHeight.toInt()}";
  if (!_rectCache.containsKey(key)) {
    final List<Rect> rects = [];
    const int columns = 10;
    const double pr = 2.0;
    // 80 entries for alphabet.length * 2
    for (int i = 0; i < 80; i++) {
      final int row = i ~/ columns;
      final int col = i % columns;
      rects.add(Rect.fromLTWH(
        col * unitWidth * pr,
        row * (unitHeight / 2) * pr,
        unitWidth * pr,
        (unitHeight / 2) * pr,
      ));
    }
    _rectCache[key] = rects;
  }
}