Index: sky/examples/game/lib/game_tests.dart |
diff --git a/sky/examples/game/lib/game_tests.dart b/sky/examples/game/lib/game_tests.dart |
index c9800df8d001b20d524d59049744e95d303ea1ca..b74910eff00490db388c052d2f94a1243361cf26 100644 |
--- a/sky/examples/game/lib/game_tests.dart |
+++ b/sky/examples/game/lib/game_tests.dart |
@@ -2,7 +2,59 @@ part of game; |
Math.Random _rand; |
-class GameTests extends TransformNode{ |
+class GameTestsBox extends SpriteBox { |
+ GameTestsBox(Node tests, SpriteBoxTransformMode mode) : super(tests, mode); |
+ |
+ void handleEvent(Event event, BoxHitTestEntry entry) { |
+ |
+ if (event is PointerEvent) { |
+ Point pointerPos = new Point(event.x, event.y); |
abarth-chromium
2015/06/11 00:20:19
You might want to use entry.localPosition rather t
|
+ int pointer = event.pointer; |
+ |
+ switch (event.type) { |
+ case 'pointerdown': |
+ List sprites = findNodesAtPosition(pointerPos); |
+ for (Node node in sprites) { |
+ if (node is Sprite) { |
+ Sprite sprt = node; |
+ sprt.colorOverlay = new Color(0x66ff0000); |
abarth-chromium
2015/06/11 00:20:19
I think you can just write:
node.colorOverlay = n
|
+ } |
+ } |
+ break; |
+ } |
+ } |
+ } |
+} |
+ |
+class GameTestsSimple extends Node { |
+ Image _imgAsteroid; |
+ Image _imgBg; |
+ Image _imgShip; |
+ |
+ GameTestsSimple(ImageMap images) { |
+ // Setup random number generator |
+ _rand = new Math.Random(); |
+ |
+ // Fetch images |
+ _imgBg = images["https://raw.githubusercontent.com/slembcke/GalacticGuardian.spritebuilder/GDC/Packages/SpriteBuilder%20Resources.sbpack/resources-auto/BurnTexture.png"]; |
+ _imgAsteroid = images["https://raw.githubusercontent.com/slembcke/GalacticGuardian.spritebuilder/GDC/Packages/SpriteBuilder%20Resources.sbpack/Sprites/resources-auto/asteroid_big_002.png"]; |
+ _imgShip = images["https://raw.githubusercontent.com/slembcke/GalacticGuardian.spritebuilder/GDC/Packages/SpriteBuilder%20Resources.sbpack/Sprites/resources-auto/GG_blueship_Lv3.png"]; |
+ |
+ Sprite sprt0 = new Sprite.withImage(_imgBg); |
+ sprt0.size = new Size(100.0, 100.0); |
+ sprt0.pivot = new Point(0.0, 0.0); |
+ sprt0.position = new Point(100.0, 100.0); |
+ this.addChild(sprt0); |
+ |
+ Sprite sprt1 = new Sprite.withImage(_imgBg); |
+ sprt1.size = new Size(100.0, 100.0); |
+ sprt1.pivot = new Point(0.0, 0.0); |
+ sprt1.position = new Point(100.0, 100.0); |
+ sprt0.addChild(sprt1); |
+ } |
+} |
+ |
+class GameTests extends Node{ |
Image _imgAsteroid; |
Image _imgBg; |
@@ -24,8 +76,7 @@ class GameTests extends TransformNode{ |
void addSprite([double scale = null]) { |
TestAsteroidSprite sprt = new TestAsteroidSprite.withImage(_imgAsteroid); |
- sprt.width = 64.0; |
- sprt.height = 64.0; |
+ sprt.size = new Size(64.0, 64.0); |
if (scale == null) { |
scale = _rand.nextDouble(); |
@@ -33,19 +84,29 @@ class GameTests extends TransformNode{ |
sprt.zPosition = scale; |
sprt.scale = scale; |
- sprt.position = new Vector2(_rand.nextDouble()*1024.0, _rand.nextDouble()*1024.0); |
+ sprt.position = new Point(_rand.nextDouble()*1024.0, _rand.nextDouble()*1024.0); |
this.addChild(sprt); |
+ |
+ Sprite sprtMoon0 = new Sprite.withImage(_imgAsteroid); |
+ sprtMoon0.size = new Size(32.0, 32.0); |
+ sprtMoon0.position = new Point(32.0, 0.0); |
+ sprt.addChild(sprtMoon0); |
+ |
+ Sprite sprtMoon1 = new Sprite.withImage(_imgAsteroid); |
+ sprtMoon1.size = new Size(32.0, 32.0); |
+ sprtMoon1.position = new Point(-32.0, 0.0); |
+ sprt.addChild(sprtMoon1); |
} |
void update(double dt) { |
- for (TransformNode child in children) { |
+ for (Node child in children) { |
child.update(dt); |
} |
} |
} |
-class TestAsteroidSprite extends SpriteNode { |
+class TestAsteroidSprite extends Sprite { |
Vector2 _movementVector; |
double _rotationalSpeed; |
@@ -56,11 +117,14 @@ class TestAsteroidSprite extends SpriteNode { |
} |
void update(double dt) { |
- position = position + _movementVector * scale; |
+ Vector2 vPos = new Vector2(position.x, position.y); |
+ Vector2 vNewPos = vPos + _movementVector * scale; |
+ |
+ position = new Point(vNewPos[0], vNewPos[1]); |
// Bounce at edges |
- if (position[0] < 0 || position[0] > 1024.0) _movementVector[0] = -_movementVector[0]; |
- if (position[1] < 0 || position[1] > 1024.0) _movementVector[1] = -_movementVector[1]; |
+ if (position.x < 0 || position.x > 1024.0) _movementVector[0] = -_movementVector[0]; |
+ if (position.y < 0 || position.y > 1024.0) _movementVector[1] = -_movementVector[1]; |
rotation += _rotationalSpeed; |
} |