OLD | NEW |
1 part of game; | 1 part of game; |
2 | 2 |
3 class GameWorld extends TransformNode { | 3 class GameWorld extends TransformNode { |
4 | 4 |
5 World world; | 5 World world; |
6 List<Body> bodies = []; | 6 List<Body> bodies = []; |
7 Body _bodyShip; | 7 Body _bodyShip; |
8 | 8 |
9 Image _imgBg; | 9 Image _imgBg; |
10 Image _imgAsteroid; | 10 Image _imgAsteroid; |
(...skipping 12 matching lines...) Expand all Loading... |
23 _imgAsteroid = images["https://raw.githubusercontent.com/slembcke/GalacticGu
ardian.spritebuilder/GDC/Packages/SpriteBuilder%20Resources.sbpack/Sprites/resou
rces-auto/asteroid_big_002.png"]; | 23 _imgAsteroid = images["https://raw.githubusercontent.com/slembcke/GalacticGu
ardian.spritebuilder/GDC/Packages/SpriteBuilder%20Resources.sbpack/Sprites/resou
rces-auto/asteroid_big_002.png"]; |
24 _imgShip = images["https://raw.githubusercontent.com/slembcke/GalacticGuardi
an.spritebuilder/GDC/Packages/SpriteBuilder%20Resources.sbpack/Sprites/resources
-auto/GG_blueship_Lv3.png"]; | 24 _imgShip = images["https://raw.githubusercontent.com/slembcke/GalacticGuardi
an.spritebuilder/GDC/Packages/SpriteBuilder%20Resources.sbpack/Sprites/resources
-auto/GG_blueship_Lv3.png"]; |
25 | 25 |
26 // Create the physics world | 26 // Create the physics world |
27 world = new World.withGravity(new Vector2(0.0, 0.0)); | 27 world = new World.withGravity(new Vector2(0.0, 0.0)); |
28 | 28 |
29 // Add a background | 29 // Add a background |
30 addBackground(); | 30 addBackground(); |
31 | 31 |
32 // Add some asteroids to the game world | 32 // Add some asteroids to the game world |
33 for (int i = 0; i < 5; i++) { | 33 for (int i = 0; i < 50; i++) { |
34 addAsteroid(10.0); | 34 addAsteroid(10.0); |
35 } | 35 } |
36 for (int i = 0; i < 5; i++) { | 36 for (int i = 0; i < 50; i++) { |
37 addAsteroid(20.0); | 37 addAsteroid(20.0); |
38 } | 38 } |
39 | 39 |
40 // Add ship | 40 // Add ship |
41 addShip(); | 41 addShip(); |
42 } | 42 } |
43 | 43 |
44 void addBackground() { | 44 void addBackground() { |
45 SpriteNode sprtBg = new SpriteNode.withImage(_imgBg); | 45 SpriteNode sprtBg = new SpriteNode.withImage(_imgBg); |
46 sprtBg.width = width; | 46 sprtBg.width = width; |
47 sprtBg.height = height; | 47 sprtBg.height = height; |
48 sprtBg.pivot = new Vector2(0.0, 0.0); | 48 sprtBg.pivot = new Vector2(0.0, 0.0); |
49 this.children.add(sprtBg); | 49 this.addChild(sprtBg); |
50 } | 50 } |
51 | 51 |
52 void addAsteroid([double radius=20.0]) { | 52 void addAsteroid([double radius=20.0]) { |
53 | 53 |
54 // Create shape | 54 // Create shape |
55 final CircleShape shape = new CircleShape(); | 55 final CircleShape shape = new CircleShape(); |
56 shape.radius = radius; | 56 shape.radius = radius; |
57 | 57 |
58 // Define fixture (links body and shape) | 58 // Define fixture (links body and shape) |
59 final FixtureDef activeFixtureDef = new FixtureDef(); | 59 final FixtureDef activeFixtureDef = new FixtureDef(); |
(...skipping 20 matching lines...) Expand all Loading... |
80 // Add to list | 80 // Add to list |
81 bodies.add(body); | 81 bodies.add(body); |
82 | 82 |
83 // Create sprite | 83 // Create sprite |
84 SpriteNode sprt = new SpriteNode.withImage(_imgAsteroid); | 84 SpriteNode sprt = new SpriteNode.withImage(_imgAsteroid); |
85 sprt.width = radius*2; | 85 sprt.width = radius*2; |
86 sprt.height = radius*2; | 86 sprt.height = radius*2; |
87 // sprt.colorOverlay = new Color(0x33ff0000); | 87 // sprt.colorOverlay = new Color(0x33ff0000); |
88 // sprt.transferMode = TransferMode.plusMode; | 88 // sprt.transferMode = TransferMode.plusMode; |
89 body.userData = sprt; | 89 body.userData = sprt; |
90 this.children.add(sprt); | 90 this.addChild(sprt); |
91 } | 91 } |
92 | 92 |
93 void addShip() { | 93 void addShip() { |
94 double radius = 30.0; | 94 double radius = 30.0; |
95 | 95 |
96 // Create shape | 96 // Create shape |
97 final CircleShape shape = new CircleShape(); | 97 final CircleShape shape = new CircleShape(); |
98 shape.radius = radius; | 98 shape.radius = radius; |
99 | 99 |
100 // Define fixture (links body and shape) | 100 // Define fixture (links body and shape) |
(...skipping 19 matching lines...) Expand all Loading... |
120 // Add to list | 120 // Add to list |
121 bodies.add(body); | 121 bodies.add(body); |
122 _bodyShip = body; | 122 _bodyShip = body; |
123 | 123 |
124 // Create sprite | 124 // Create sprite |
125 SpriteNode sprt = new SpriteNode.withImage(_imgShip); | 125 SpriteNode sprt = new SpriteNode.withImage(_imgShip); |
126 sprt.width = radius*2; | 126 sprt.width = radius*2; |
127 sprt.height = radius*2; | 127 sprt.height = radius*2; |
128 sprt.position = new Vector2(width/2.0, height/2.0); | 128 sprt.position = new Vector2(width/2.0, height/2.0); |
129 body.userData = sprt; | 129 body.userData = sprt; |
130 this.children.add(sprt); | 130 this.addChild(sprt); |
131 } | 131 } |
132 | 132 |
133 void update(double dt) { | 133 void update(double dt) { |
134 // Apply thrust | 134 // Apply thrust |
135 if (_thrustInput != null) { | 135 if (_thrustInput != null) { |
136 double force = _thrustInput*10000.0; | 136 double force = _thrustInput*10000.0; |
137 double rad = degrees2radians(_bodyShip.getAngle()); | 137 double rad = degrees2radians(_bodyShip.getAngle()); |
138 _bodyShip.applyLinearImpulse(new Vector2(Math.cos(rad)*force, Math.sin(rad
)*force), new Vector2(0.0, 0.0), true); | 138 _bodyShip.applyLinearImpulse(new Vector2(Math.cos(rad)*force, Math.sin(rad
)*force), new Vector2(0.0, 0.0), true); |
139 } | 139 } |
140 | 140 |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
182 } | 182 } |
183 | 183 |
184 void controlThrust(double input) { | 184 void controlThrust(double input) { |
185 _thrustInput = input; | 185 _thrustInput = input; |
186 } | 186 } |
187 | 187 |
188 void controlFire() { | 188 void controlFire() { |
189 | 189 |
190 } | 190 } |
191 } | 191 } |
OLD | NEW |