OLD | NEW |
1 part of sprites; | 1 part of sprites; |
2 | 2 |
3 enum SpriteBoxTransformMode { | 3 enum SpriteBoxTransformMode { |
4 nativePoints, | 4 nativePoints, |
5 letterbox, | 5 letterbox, |
6 stretch, | 6 stretch, |
7 scaleToFit, | 7 scaleToFit, |
8 fixedWidth, | 8 fixedWidth, |
9 fixedHeight, | 9 fixedHeight, |
10 } | 10 } |
11 | 11 |
12 class SpriteBox extends RenderBox { | 12 class SpriteBox extends RenderBox { |
13 | 13 |
14 // Root node for drawing | 14 // Root node for drawing |
15 TransformNode _rootNode; | 15 TransformNode _rootNode; |
16 | 16 |
17 // Tracking of frame rate and updates | 17 // Tracking of frame rate and updates |
18 double _lastTimeStamp; | 18 double _lastTimeStamp; |
19 int _numFrames = 0; | 19 int _numFrames = 0; |
20 | 20 |
21 SpriteBoxTransformMode transformMode; | 21 SpriteBoxTransformMode transformMode; |
22 double _systemWidth; | 22 double _systemWidth; |
23 double _systemHeight; | 23 double _systemHeight; |
24 | 24 |
25 SpriteBox(TransformNode rootNode, [SpriteBoxTransformMode mode = SpriteBoxTran
sformMode.nativePoints, double width=1024.0, double height=1024.0]) { | 25 SpriteBox(TransformNode rootNode, [SpriteBoxTransformMode mode = SpriteBoxTran
sformMode.nativePoints, double width=1024.0, double height=1024.0]) { |
| 26 assert(rootNode != null); |
| 27 assert(rootNode._spriteBox == null); |
| 28 |
26 // Setup root node | 29 // Setup root node |
27 _rootNode = rootNode; | 30 _rootNode = rootNode; |
28 | 31 |
| 32 // Assign SpriteBox reference to all the nodes |
| 33 _addSpriteBoxReference(_rootNode); |
| 34 |
29 // Setup transform mode | 35 // Setup transform mode |
30 transformMode = mode; | 36 transformMode = mode; |
31 _systemWidth = width; | 37 _systemWidth = width; |
32 _systemHeight = height; | 38 _systemHeight = height; |
33 | 39 |
34 _scheduleTick(); | 40 _scheduleTick(); |
35 } | 41 } |
36 | 42 |
| 43 void _addSpriteBoxReference(TransformNode node) { |
| 44 node._spriteBox = this; |
| 45 for (TransformNode child in node._children) { |
| 46 _addSpriteBoxReference(child); |
| 47 } |
| 48 } |
| 49 |
37 double get systemWidth => _systemWidth; | 50 double get systemWidth => _systemWidth; |
38 double get systemHeight => _systemHeight; | 51 double get systemHeight => _systemHeight; |
39 | 52 |
40 TransformNode get rootNode => _rootNode; | 53 TransformNode get rootNode => _rootNode; |
41 | 54 |
42 void performLayout() { | 55 void performLayout() { |
43 size = constraints.constrain(Size.infinite); | 56 size = constraints.constrain(Size.infinite); |
44 } | 57 } |
45 | 58 |
46 void handleEvent(Event event) { | 59 void handleEvent(Event event) { |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
132 // Count the number of frames we've been running | 145 // Count the number of frames we've been running |
133 _numFrames += 1; | 146 _numFrames += 1; |
134 | 147 |
135 // Print frame rate | 148 // Print frame rate |
136 if (_numFrames % 60 == 0) print("delta: ${delta} fps: ${1.0/delta}"); | 149 if (_numFrames % 60 == 0) print("delta: ${delta} fps: ${1.0/delta}"); |
137 | 150 |
138 _rootNode.update(delta); | 151 _rootNode.update(delta); |
139 _scheduleTick(); | 152 _scheduleTick(); |
140 } | 153 } |
141 } | 154 } |
OLD | NEW |