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

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

Issue 1177563004: Adds support for zOrder and references to parent nodes in sprites (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: 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
« no previous file with comments | « sky/examples/game/lib/game_world.dart ('k') | sky/examples/game/lib/transform_node.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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 }
OLDNEW
« no previous file with comments | « sky/examples/game/lib/game_world.dart ('k') | sky/examples/game/lib/transform_node.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698