Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(286)

Side by Side Diff: sky/examples/game/lib/spritesheet.dart

Issue 1204783003: Adds basic sprite sheet support to sprites (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Adds basic sprite sheet support to sprites (fixed issues) Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 part of sprites;
2
3 class SpriteSheet {
4
5 Image _image;
6 Map<String, Texture> _textures = new Map();
7
8 SpriteSheet(this._image, String jsonDefinition) {
9 assert(_image != null);
10 assert(jsonDefinition != null);
11
12 JsonDecoder decoder = new JsonDecoder();
13 Map file = decoder.convert(jsonDefinition);
14 assert(file != null);
15
16 List frames = file["frames"];
17
18 for (Map frameInfo in frames) {
19 String fileName = frameInfo["filename"];
20 Rect frame = _readJsonRect(frameInfo["frame"]);
21 bool rotated = frameInfo["rotated"];
22 bool trimmed = frameInfo["trimmed"];
23 Rect spriteSourceSize = _readJsonRect(frameInfo["spriteSourceSize"]);
24 Size sourceSize = _readJsonSize(frameInfo["sourceSize"]);
25 Point pivot = _readJsonPoint(frameInfo["pivot"]);
26
27 var texture = new Texture._fromSpriteFrame(_image, fileName, sourceSize, r otated, trimmed, frame,
28 spriteSourceSize, pivot);
29 _textures[fileName] = texture;
30 }
31 }
32
33 Rect _readJsonRect(Map data) {
34 num x = data["x"];
eseidel 2015/06/23 23:22:31 Do you mean to use num instead of int or double?
35 num y = data["y"];
36 num w = data["w"];
37 num h = data["h"];
38
39 return new Rect.fromLTRB(x.toDouble(), y.toDouble(), (x + w).toDouble(), (y + h).toDouble());
40 }
41
42 Size _readJsonSize(Map data) {
43 num w = data["w"];
44 num h = data["h"];
45
46 return new Size(w.toDouble(), h.toDouble());
47 }
48
49 Point _readJsonPoint(Map data) {
50 num x = data["x"];
51 num y = data["y"];
52
53 return new Point(x.toDouble(), y.toDouble());
54 }
55
56 Image get image => _image;
57
58 Texture operator [](String fileName) => _textures[fileName];
59 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698