| 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 |