| OLD | NEW |
| 1 part of sprites; | 1 part of sprites; |
| 2 | 2 |
| 3 /// A sprite sheet packs a number of smaller images into a single large image. |
| 4 /// |
| 5 /// The placement of the smaller images are defined by a json file. The larger i
mage and json file is typically created |
| 6 /// by a tool such as TexturePacker. The [SpriteSheet] class will take a referen
ce to a larger image and a json string. |
| 7 /// From the image and the string the [SpriteSheet] creates a number of [Texture
] objects. The names of the frames in |
| 8 /// the sprite sheet definition are used to reference the different textures. |
| 3 class SpriteSheet { | 9 class SpriteSheet { |
| 4 | 10 |
| 5 Image _image; | 11 Image _image; |
| 6 Map<String, Texture> _textures = new Map(); | 12 Map<String, Texture> _textures = new Map(); |
| 7 | 13 |
| 14 /// Creates a new sprite sheet from an [_image] and a sprite sheet [jsonDefini
tion]. |
| 15 /// |
| 16 /// var mySpriteSheet = new SpriteSheet(myImage, jsonString); |
| 8 SpriteSheet(this._image, String jsonDefinition) { | 17 SpriteSheet(this._image, String jsonDefinition) { |
| 9 assert(_image != null); | 18 assert(_image != null); |
| 10 assert(jsonDefinition != null); | 19 assert(jsonDefinition != null); |
| 11 | 20 |
| 12 JsonDecoder decoder = new JsonDecoder(); | 21 JsonDecoder decoder = new JsonDecoder(); |
| 13 Map file = decoder.convert(jsonDefinition); | 22 Map file = decoder.convert(jsonDefinition); |
| 14 assert(file != null); | 23 assert(file != null); |
| 15 | 24 |
| 16 List frames = file["frames"]; | 25 List frames = file["frames"]; |
| 17 | 26 |
| (...skipping 28 matching lines...) Expand all Loading... |
| 46 return new Size(w.toDouble(), h.toDouble()); | 55 return new Size(w.toDouble(), h.toDouble()); |
| 47 } | 56 } |
| 48 | 57 |
| 49 Point _readJsonPoint(Map data) { | 58 Point _readJsonPoint(Map data) { |
| 50 num x = data["x"]; | 59 num x = data["x"]; |
| 51 num y = data["y"]; | 60 num y = data["y"]; |
| 52 | 61 |
| 53 return new Point(x.toDouble(), y.toDouble()); | 62 return new Point(x.toDouble(), y.toDouble()); |
| 54 } | 63 } |
| 55 | 64 |
| 65 /// The image used by the sprite sheet. |
| 66 /// |
| 67 /// var spriteSheetImage = mySpriteSheet.image; |
| 56 Image get image => _image; | 68 Image get image => _image; |
| 57 | 69 |
| 70 /// Returns a texture by its name. |
| 71 /// |
| 72 /// var myTexture = mySpriteSheet["example.png"]; |
| 58 Texture operator [](String fileName) => _textures[fileName]; | 73 Texture operator [](String fileName) => _textures[fileName]; |
| 59 } | 74 } |
| OLD | NEW |