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

Side by Side Diff: sky/sdk/example/game/lib/sprite.dart

Issue 1216573009: Adds particle systems to sprites (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 5 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 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 Paint paint = new Paint(); 96 Paint paint = new Paint();
97 paint.color = new Color.fromARGB((255.0*_opacity).toInt(), 255, 255, 255); 97 paint.color = new Color.fromARGB((255.0*_opacity).toInt(), 255, 255, 255);
98 if (colorOverlay != null) { 98 if (colorOverlay != null) {
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 texture.drawTexture(canvas, Point.origin, paint);
107 // Calculate the rotated frame and spriteSourceSize
108 Size originalFrameSize = texture.frame.size;
109 Rect rotatedFrame = texture.frame.topLeft & new Size(originalFrameSize.h eight, originalFrameSize.width);
110 Point rotatedSpriteSourcePoint = new Point(
111 -texture.spriteSourceSize.top - (texture.spriteSourceSize.bottom - t exture.spriteSourceSize.top),
112 texture.spriteSourceSize.left);
113 Rect rotatedSpriteSourceSize = rotatedSpriteSourcePoint & new Size(origi nalFrameSize.height, originalFrameSize.width);
114
115 // Draw the rotated sprite
116 canvas.rotate(-Math.PI/2.0);
117 canvas.drawImageRect(texture.image, rotatedFrame, rotatedSpriteSourceSiz e, paint);
118 } else {
119 // Draw the sprite
120 canvas.drawImageRect(texture.image, texture.frame, texture.spriteSourceS ize, paint);
121 }
122 } else { 107 } else {
123 // Paint a red square for missing texture 108 // Paint a red square for missing texture
124 canvas.drawRect(new Rect.fromLTRB(0.0, 0.0, size.width, size.height), 109 canvas.drawRect(new Rect.fromLTRB(0.0, 0.0, size.width, size.height),
125 new Paint()..color = const Color.fromARGB(255, 255, 0, 0)); 110 new Paint()..color = const Color.fromARGB(255, 255, 0, 0));
126 } 111 }
127 canvas.restore(); 112 canvas.restore();
128 } 113 }
129 } 114 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698