diff --git a/packages/flutter/example/game/lib/game_demo_world.dart b/packages/flutter/example/game/lib/game_demo_world.dart index f5bf2524ac0..6ee0c018d21 100644 --- a/packages/flutter/example/game/lib/game_demo_world.dart +++ b/packages/flutter/example/game/lib/game_demo_world.dart @@ -561,9 +561,10 @@ class Laser extends Sprite { // Background starfield -class StarField extends Node { - Image _image; +class StarField extends NodeWithSize { + sky.Image _image; int _numStars; + bool _autoScroll; List _starPositions; List _starScales; List _rects; @@ -573,7 +574,7 @@ class StarField extends Node { ..isAntiAlias = false ..setTransferMode(sky.TransferMode.plus); - StarField(SpriteSheet spriteSheet, this._numStars) { + StarField(SpriteSheet spriteSheet, this._numStars, [this._autoScroll = false]) : super(new Size(1024.0, 1024.0)) { _starPositions = []; _starScales = []; _colors = []; @@ -618,6 +619,12 @@ class StarField extends Node { _starPositions[i] = new Point(xPos, yPos); } } + + void update(double dt) { + if (_autoScroll) { + move(dt * 100.0, 0.0); + } + } } class Hud extends NodeWithSize { diff --git a/packages/flutter/example/game/lib/node.dart b/packages/flutter/example/game/lib/node.dart index 97eb09ea2a0..66e8cfe6efa 100644 --- a/packages/flutter/example/game/lib/node.dart +++ b/packages/flutter/example/game/lib/node.dart @@ -416,7 +416,7 @@ class Node { } void _prePaint(PaintingCanvas canvas) { - _savedTotalMatrix = canvas.getTotalMatrix(); + _savedTotalMatrix = new Matrix4.fromFloat32List(canvas.getTotalMatrix());; // Get the transformation matrix and apply transform canvas.concat(transformMatrix.storage); @@ -467,7 +467,7 @@ class Node { } void _postPaint(PaintingCanvas canvas) { - canvas.setMatrix(_savedTotalMatrix); + canvas.setMatrix(_savedTotalMatrix.storage); } // Receiving update calls diff --git a/packages/flutter/example/game/lib/sprite.dart b/packages/flutter/example/game/lib/sprite.dart index 6c30c1148c5..afccb1ab53c 100644 --- a/packages/flutter/example/game/lib/sprite.dart +++ b/packages/flutter/example/game/lib/sprite.dart @@ -68,7 +68,7 @@ class Sprite extends NodeWithSize { void paint(PaintingCanvas canvas) { // Store old matrix - Matrix4 savedMatrix = canvas.getTotalMatrix(); + Matrix4 savedMatrix = new Matrix4.fromFloat32List(canvas.getTotalMatrix()); // Account for pivot point applyTransformForPivot(canvas); @@ -113,6 +113,6 @@ class Sprite extends NodeWithSize { } // Restore matrix - canvas.setMatrix(savedMatrix); + canvas.setMatrix(savedMatrix.storage); } }