Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(40)

Side by Side Diff: sky/examples/game/lib/game_tests.dart

Issue 1179333002: Playable demo game and bug fixes in sprites (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698