SpriteSheet constructor

SpriteSheet(
  1. {required Image image,
  2. required String jsonDefinition}
)

Creates a new sprite sheet from an _image and a sprite sheet jsonDefinition.

var mySpriteSheet = SpriteSheet(
  image: myImage,
  jsonDefinition: jsonString,
);

Implementation

SpriteSheet({required ui.Image image, required String jsonDefinition})
    : _image = image {
  JsonDecoder decoder = const JsonDecoder();
  Map<dynamic, dynamic> file = decoder.convert(jsonDefinition);

  List<dynamic> frames = file['frames'];

  for (var frameInfo in frames) {
    String fileName = frameInfo['filename'];
    Rect frame = _readJsonRect(frameInfo['frame']);
    bool rotated = frameInfo['rotated'];
    bool trimmed = frameInfo['trimmed'];
    Rect spriteSourceSize = _readJsonRect(frameInfo['spriteSourceSize']);
    Size sourceSize = _readJsonSize(frameInfo['sourceSize']);
    Offset pivot = _readJsonPoint(frameInfo['pivot']);

    SpriteTexture texture = SpriteTexture._fromSpriteFrame(
      _image,
      fileName,
      sourceSize,
      rotated,
      trimmed,
      frame,
      spriteSourceSize,
      pivot,
    );
    _textures[fileName] = texture;
  }
}