| OLD | NEW |
| (Empty) |
| 1 part of game; | |
| 2 | |
| 3 Math.Random _rand; | |
| 4 | |
| 5 class GameTestsBox extends SpriteBox { | |
| 6 GameTestsBox(Node tests, SpriteBoxTransformMode mode) : super(tests, mode); | |
| 7 | |
| 8 void handleEvent(Event event, BoxHitTestEntry entry) { | |
| 9 | |
| 10 if (event is PointerEvent) { | |
| 11 Point pointerPos = new Point(event.x, event.y); | |
| 12 int pointer = event.pointer; | |
| 13 | |
| 14 switch (event.type) { | |
| 15 case 'pointerdown': | |
| 16 List sprites = findNodesAtPosition(pointerPos); | |
| 17 for (Node node in sprites) { | |
| 18 if (node is Sprite) { | |
| 19 Sprite sprt = node; | |
| 20 sprt.colorOverlay = new Color(0x66ff0000); | |
| 21 } | |
| 22 } | |
| 23 break; | |
| 24 } | |
| 25 } | |
| 26 } | |
| 27 } | |
| 28 | |
| 29 class GameTestsSimple extends Node { | |
| 30 Image _imgAsteroid; | |
| 31 Image _imgBg; | |
| 32 Image _imgShip; | |
| 33 | |
| 34 GameTestsSimple(ImageMap images) { | |
| 35 // Setup random number generator | |
| 36 _rand = new Math.Random(); | |
| 37 | |
| 38 // Fetch images | |
| 39 _imgBg = images["https://raw.githubusercontent.com/slembcke/GalacticGuardian
.spritebuilder/GDC/Packages/SpriteBuilder%20Resources.sbpack/resources-auto/Burn
Texture.png"]; | |
| 40 _imgAsteroid = images["https://raw.githubusercontent.com/slembcke/GalacticGu
ardian.spritebuilder/GDC/Packages/SpriteBuilder%20Resources.sbpack/Sprites/resou
rces-auto/asteroid_big_002.png"]; | |
| 41 _imgShip = images["https://raw.githubusercontent.com/slembcke/GalacticGuardi
an.spritebuilder/GDC/Packages/SpriteBuilder%20Resources.sbpack/Sprites/resources
-auto/GG_blueship_Lv3.png"]; | |
| 42 | |
| 43 Sprite sprt0 = new Sprite.withImage(_imgBg); | |
| 44 sprt0.size = new Size(100.0, 100.0); | |
| 45 sprt0.pivot = new Point(0.0, 0.0); | |
| 46 sprt0.position = new Point(100.0, 100.0); | |
| 47 this.addChild(sprt0); | |
| 48 | |
| 49 Sprite sprt1 = new Sprite.withImage(_imgBg); | |
| 50 sprt1.size = new Size(100.0, 100.0); | |
| 51 sprt1.pivot = new Point(0.0, 0.0); | |
| 52 sprt1.position = new Point(100.0, 100.0); | |
| 53 sprt0.addChild(sprt1); | |
| 54 } | |
| 55 } | |
| 56 | |
| 57 class GameTests extends Node{ | |
| 58 | |
| 59 Image _imgAsteroid; | |
| 60 Image _imgBg; | |
| 61 Image _imgShip; | |
| 62 | |
| 63 GameTests(ImageMap images) { | |
| 64 // Setup random number generator | |
| 65 _rand = new Math.Random(); | |
| 66 | |
| 67 // Fetch images | |
| 68 _imgBg = images["https://raw.githubusercontent.com/slembcke/GalacticGuardian
.spritebuilder/GDC/Packages/SpriteBuilder%20Resources.sbpack/resources-auto/Burn
Texture.png"]; | |
| 69 _imgAsteroid = images["https://raw.githubusercontent.com/slembcke/GalacticGu
ardian.spritebuilder/GDC/Packages/SpriteBuilder%20Resources.sbpack/Sprites/resou
rces-auto/asteroid_big_002.png"]; | |
| 70 _imgShip = images["https://raw.githubusercontent.com/slembcke/GalacticGuardi
an.spritebuilder/GDC/Packages/SpriteBuilder%20Resources.sbpack/Sprites/resources
-auto/GG_blueship_Lv3.png"]; | |
| 71 | |
| 72 for (int i = 0; i < 100; i++) { | |
| 73 addSprite(i/100.0); | |
| 74 } | |
| 75 } | |
| 76 | |
| 77 void addSprite([double scale = null]) { | |
| 78 TestAsteroidSprite sprt = new TestAsteroidSprite.withImage(_imgAsteroid); | |
| 79 sprt.size = new Size(64.0, 64.0); | |
| 80 | |
| 81 if (scale == null) { | |
| 82 scale = _rand.nextDouble(); | |
| 83 } | |
| 84 | |
| 85 sprt.zPosition = scale; | |
| 86 sprt.scale = scale; | |
| 87 sprt.position = new Point(_rand.nextDouble()*1024.0, _rand.nextDouble()*1024
.0); | |
| 88 | |
| 89 this.addChild(sprt); | |
| 90 | |
| 91 Sprite sprtMoon0 = new Sprite.withImage(_imgAsteroid); | |
| 92 sprtMoon0.size = new Size(32.0, 32.0); | |
| 93 sprtMoon0.position = new Point(32.0, 0.0); | |
| 94 sprt.addChild(sprtMoon0); | |
| 95 | |
| 96 Sprite sprtMoon1 = new Sprite.withImage(_imgAsteroid); | |
| 97 sprtMoon1.size = new Size(32.0, 32.0); | |
| 98 sprtMoon1.position = new Point(-32.0, 0.0); | |
| 99 sprt.addChild(sprtMoon1); | |
| 100 } | |
| 101 | |
| 102 void update(double dt) { | |
| 103 for (Node child in children) { | |
| 104 child.update(dt); | |
| 105 } | |
| 106 } | |
| 107 } | |
| 108 | |
| 109 class TestAsteroidSprite extends Sprite { | |
| 110 | |
| 111 Vector2 _movementVector; | |
| 112 double _rotationalSpeed; | |
| 113 | |
| 114 TestAsteroidSprite.withImage(Image img) : super.withImage(img) { | |
| 115 _movementVector = new Vector2(_rand.nextDouble() * 4.0 - 2.0, _rand.nextDoub
le() * 4.0 - 2.0); | |
| 116 _rotationalSpeed = _rand.nextDouble() * 2.0 - 1.0; | |
| 117 } | |
| 118 | |
| 119 void update(double dt) { | |
| 120 Vector2 vPos = new Vector2(position.x, position.y); | |
| 121 Vector2 vNewPos = vPos + _movementVector * scale; | |
| 122 | |
| 123 position = new Point(vNewPos[0], vNewPos[1]); | |
| 124 | |
| 125 // Bounce at edges | |
| 126 if (position.x < 0 || position.x > 1024.0) _movementVector[0] = -_movementVe
ctor[0]; | |
| 127 if (position.y < 0 || position.y > 1024.0) _movementVector[1] = -_movementVe
ctor[1]; | |
| 128 | |
| 129 rotation += _rotationalSpeed; | |
| 130 } | |
| 131 } | |
| OLD | NEW |