Chromium Code Reviews| Index: sky/examples/game/lib/sprite_node.dart |
| diff --git a/sky/examples/game/lib/sprite_node.dart b/sky/examples/game/lib/sprite_node.dart |
| index ca6296a82d133880872b01accd2b8af498951110..586be71403b1c9975724df7c6b192bd3c4725c16 100644 |
| --- a/sky/examples/game/lib/sprite_node.dart |
| +++ b/sky/examples/game/lib/sprite_node.dart |
| @@ -6,6 +6,9 @@ class SpriteNode extends TransformNode { |
| Image _image; |
| bool constrainProportions = false; |
| + double _opacity = 1.0; |
| + Color colorOverlay; |
| + TransferMode transferMode; |
| SpriteNode() { |
| this.pivot = new Vector2(0.5, 0.5); |
| @@ -15,7 +18,14 @@ class SpriteNode extends TransformNode { |
| this.pivot = new Vector2(0.5, 0.5); |
| _image = image; |
| } |
| - |
| + |
| + double get opacity => _opacity; |
| + |
| + void set opacity(double opacity) { |
| + assert(opacity >= 0.0 && opacity <=1.0); |
|
Matt Perry
2015/06/04 17:50:18
space after <=
|
| + _opacity = opacity; |
| + } |
| + |
| void paint(PictureRecorder canvas) { |
| if (_image != null && _image.width > 0 && _image.height > 0) { |
| @@ -37,7 +47,18 @@ class SpriteNode extends TransformNode { |
| } |
| canvas.scale(scaleX, scaleY); |
| - canvas.drawImage(_image, 0.0, 0.0, new Paint()..setARGB(255, 255, 255, 255)); |
| + |
| + // Setup paint object for opacity and transfer mode |
| + Paint paint = new Paint(); |
| + paint.setARGB((255.0*_opacity).toInt(), 255, 255, 255); |
|
eseidel
2015/06/04 17:49:50
Does dart put spaces around operators? I think we
|
| + if (colorOverlay != null) { |
| + paint.setColorFilter(new ColorFilter(colorOverlay, TransferMode.srcATopMode)); |
| + } |
| + if (transferMode != null) { |
| + paint.setTransferMode(transferMode); |
| + } |
| + |
| + canvas.drawImage(_image, 0.0, 0.0, paint); |
| canvas.restore(); |
| } |
| else { |