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

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

Issue 1214833004: Split Size into Size and Offset. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: add the new files also 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
1 part of sprites; 1 part of sprites;
2 2
3 /// A Sprite is a [Node] that renders a bitmap image to the screen. 3 /// A Sprite is a [Node] that renders a bitmap image to the screen.
4 class Sprite extends NodeWithSize { 4 class Sprite extends NodeWithSize {
5 5
6 /// The texture that the sprite will render to screen. 6 /// The texture that the sprite will render to screen.
7 /// 7 ///
8 /// If the texture is null, the sprite will be rendered as a red square 8 /// If the texture is null, the sprite will be rendered as a red square
9 /// marking the bounds of the sprite. 9 /// marking the bounds of the sprite.
10 /// 10 ///
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 paint.setColorFilter(new ColorFilter.mode(colorOverlay, TransferMode.src ATop)); 99 paint.setColorFilter(new ColorFilter.mode(colorOverlay, TransferMode.src ATop));
100 } 100 }
101 if (transferMode != null) { 101 if (transferMode != null) {
102 paint.setTransferMode(transferMode); 102 paint.setTransferMode(transferMode);
103 } 103 }
104 104
105 // Do actual drawing of the sprite 105 // Do actual drawing of the sprite
106 if (texture.rotated) { 106 if (texture.rotated) {
107 // Calculate the rotated frame and spriteSourceSize 107 // Calculate the rotated frame and spriteSourceSize
108 Size originalFrameSize = texture.frame.size; 108 Size originalFrameSize = texture.frame.size;
109 Rect rotatedFrame = new Rect.fromPointAndSize(texture.frame.upperLeft, n ew Size(originalFrameSize.height, originalFrameSize.width)); 109 Rect rotatedFrame = new Rect.fromPointAndSize(texture.frame.topLeft, new Size(originalFrameSize.height, originalFrameSize.width));
110 Point rotatedSpriteSourcePoint = new Point( 110 Point rotatedSpriteSourcePoint = new Point(
111 -texture.spriteSourceSize.top - (texture.spriteSourceSize.bottom - t exture.spriteSourceSize.top), 111 -texture.spriteSourceSize.top - (texture.spriteSourceSize.bottom - t exture.spriteSourceSize.top),
112 texture.spriteSourceSize.left); 112 texture.spriteSourceSize.left);
113 Rect rotatedSpriteSourceSize = new Rect.fromPointAndSize(rotatedSpriteSo urcePoint, new Size(originalFrameSize.height, originalFrameSize.width)); 113 Rect rotatedSpriteSourceSize = new Rect.fromPointAndSize(rotatedSpriteSo urcePoint, new Size(originalFrameSize.height, originalFrameSize.width));
114 114
115 // Draw the rotated sprite 115 // Draw the rotated sprite
116 canvas.rotate(-Math.PI/2.0); 116 canvas.rotate(-Math.PI/2.0);
117 canvas.drawImageRect(texture.image, rotatedFrame, rotatedSpriteSourceSiz e, paint); 117 canvas.drawImageRect(texture.image, rotatedFrame, rotatedSpriteSourceSiz e, paint);
118 } else { 118 } else {
119 // Draw the sprite 119 // Draw the sprite
120 canvas.drawImageRect(texture.image, texture.frame, texture.spriteSourceS ize, paint); 120 canvas.drawImageRect(texture.image, texture.frame, texture.spriteSourceS ize, paint);
121 } 121 }
122 } else { 122 } else {
123 // Paint a red square for missing texture 123 // Paint a red square for missing texture
124 canvas.drawRect(new Rect.fromLTRB(0.0, 0.0, size.width, size.height), 124 canvas.drawRect(new Rect.fromLTRB(0.0, 0.0, size.width, size.height),
125 new Paint()..color = const Color.fromARGB(255, 255, 0, 0)); 125 new Paint()..color = const Color.fromARGB(255, 255, 0, 0));
126 } 126 }
127 canvas.restore(); 127 canvas.restore();
128 } 128 }
129 } 129 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698