addAnimationFromTexture method

void addAnimationFromTexture(
  1. String name,
  2. Texture texture,
  3. double tileW,
  4. double tileH, [
  5. bool loop = false,
  6. int frameRate = defaultFrameRate,
])

Implementation

void addAnimationFromTexture(String name, Texture texture, double tileW, double tileH,
    [bool loop = false, int frameRate = defaultFrameRate]) {
  var width = texture.size.x;
  var height = texture.size.y;
  var row = (width / tileW).ceil();
  var col = (height / tileH).ceil();
  int length = row * col;
  if (length > 0) {
    List<TextureRegion> regions = [];
    List<int> frames = [];
    var index = 0;
    for (int j = 0; j < col; j++) {
      for (int i = 0; i < row; i++) {
        frames.add(index);
        var rect = Rect.fromLTWH(i * tileW, j * tileH, tileW, tileH);
        regions.add(TextureRegion(texture, regionRect: rect));
        index++;
      }
    }
    AnimationSequence animation =
        AnimationSequence(name: name, frames: frames, frameRate: frameRate, loop: loop);
    _addAnimation(name, animation, regions);
  }
}