| Index: sky/examples/game/lib/sprite.dart
|
| diff --git a/sky/examples/game/lib/sprite_node.dart b/sky/examples/game/lib/sprite.dart
|
| similarity index 67%
|
| rename from sky/examples/game/lib/sprite_node.dart
|
| rename to sky/examples/game/lib/sprite.dart
|
| index 327f5e028c63fe865b41cdc171580911012e2668..d62bb14f3754df33ffe0be37314467e67d414479 100644
|
| --- a/sky/examples/game/lib/sprite_node.dart
|
| +++ b/sky/examples/game/lib/sprite.dart
|
| @@ -2,7 +2,7 @@ part of sprites;
|
|
|
| // TODO: Actually draw images
|
|
|
| -class SpriteNode extends TransformNode {
|
| +class Sprite extends NodeWithSize {
|
|
|
| Image _image;
|
| bool constrainProportions = false;
|
| @@ -10,12 +10,12 @@ class SpriteNode extends TransformNode {
|
| Color colorOverlay;
|
| TransferMode transferMode;
|
|
|
| - SpriteNode() {
|
| - this.pivot = new Vector2(0.5, 0.5);
|
| + Sprite() {
|
| }
|
|
|
| - SpriteNode.withImage(Image image) : super() {
|
| - this.pivot = new Vector2(0.5, 0.5);
|
| + Sprite.withImage(Image image) {
|
| + this.pivot = new Point(0.5, 0.5);
|
| + this.size = new Size(image.width.toDouble(), image.height.toDouble());
|
| _image = image;
|
| }
|
|
|
| @@ -27,21 +27,24 @@ class SpriteNode extends TransformNode {
|
| }
|
|
|
| void paint(PictureRecorder canvas) {
|
| + canvas.save();
|
| +
|
| + // Account for pivot point
|
| + applyTransformForPivot(canvas);
|
|
|
| if (_image != null && _image.width > 0 && _image.height > 0) {
|
| - canvas.save();
|
|
|
| - double scaleX = _width/_image.width;
|
| - double scaleY = _height/_image.height;
|
| + double scaleX = size.width/_image.width;
|
| + double scaleY = size.height/_image.height;
|
|
|
| if (constrainProportions) {
|
| // Constrain proportions, using the smallest scale and by centering the image
|
| if (scaleX < scaleY) {
|
| - canvas.translate(0.0, (_height - scaleX * _image.height)/2.0);
|
| + canvas.translate(0.0, (size.height - scaleX * _image.height)/2.0);
|
| scaleY = scaleX;
|
| }
|
| else {
|
| - canvas.translate((_width - scaleY * _image.width)/2.0, 0.0);
|
| + canvas.translate((size.width - scaleY * _image.width)/2.0, 0.0);
|
| scaleX = scaleY;
|
| }
|
| }
|
| @@ -59,13 +62,12 @@ class SpriteNode extends TransformNode {
|
| }
|
|
|
| canvas.drawImage(_image, 0.0, 0.0, paint);
|
| - canvas.restore();
|
| }
|
| else {
|
| // Paint a red square for missing texture
|
| - canvas.drawRect(new Rect.fromLTRB(0.0, 0.0, this.width, this.height),
|
| + canvas.drawRect(new Rect.fromLTRB(0.0, 0.0, size.width, size.height),
|
| new Paint()..setARGB(255, 255, 0, 0));
|
| }
|
| + canvas.restore();
|
| }
|
| -
|
| }
|
|
|