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 |