OLD | NEW |
1 part of game; | 1 part of game; |
2 | 2 |
3 class GameWorld extends TransformNode { | 3 class GameWorld extends Node { |
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; |
11 Image _imgShip; | 11 Image _imgShip; |
12 | 12 |
13 double _steeringInput; | 13 double _steeringInput; |
(...skipping 21 matching lines...) Expand all Loading... |
35 } | 35 } |
36 for (int i = 0; i < 50; 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 Sprite sprtBg = new Sprite.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.addChild(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(); |
(...skipping 18 matching lines...) Expand all Loading... |
74 | 74 |
75 // Set position of object | 75 // Set position of object |
76 Math.Random rand = new Math.Random(); | 76 Math.Random rand = new Math.Random(); |
77 body.setTransform(new Vector2(rand.nextDouble() * this.width, rand.nextDoubl
e() * this.height), 0.0); | 77 body.setTransform(new Vector2(rand.nextDouble() * this.width, rand.nextDoubl
e() * this.height), 0.0); |
78 body.applyLinearImpulse(new Vector2(rand.nextDouble()*10000.0-5000.0, rand.n
extDouble()*10000.0-5000.0), new Vector2(0.0, 0.0), true); | 78 body.applyLinearImpulse(new Vector2(rand.nextDouble()*10000.0-5000.0, rand.n
extDouble()*10000.0-5000.0), new Vector2(0.0, 0.0), true); |
79 | 79 |
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 Sprite sprt = new Sprite.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.addChild(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; |
(...skipping 20 matching lines...) Expand all Loading... |
115 body.createFixtureFromFixtureDef(activeFixtureDef); | 115 body.createFixtureFromFixtureDef(activeFixtureDef); |
116 | 116 |
117 // Center on screen | 117 // Center on screen |
118 body.setTransform(new Vector2(width/2.0, height/2.0), 90.0); | 118 body.setTransform(new Vector2(width/2.0, height/2.0), 90.0); |
119 | 119 |
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 Sprite sprt = new Sprite.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.addChild(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) { |
(...skipping 12 matching lines...) Expand all Loading... |
148 else { | 148 else { |
149 _lastSteeringSpeed *= 0.75; | 149 _lastSteeringSpeed *= 0.75; |
150 } | 150 } |
151 _bodyShip.setTransform(_bodyShip.position, _bodyShip.getAngle() + _lastSteer
ingSpeed); | 151 _bodyShip.setTransform(_bodyShip.position, _bodyShip.getAngle() + _lastSteer
ingSpeed); |
152 | 152 |
153 // Update all sprites | 153 // Update all sprites |
154 bodies.forEach(updateBody); | 154 bodies.forEach(updateBody); |
155 } | 155 } |
156 | 156 |
157 void updateBody(Body body) { | 157 void updateBody(Body body) { |
158 SpriteNode sprt = body.userData; | 158 Sprite sprt = body.userData; |
159 double rot = 0.0; //body.getRotation(); | 159 double rot = 0.0; //body.getRotation(); |
160 | 160 |
161 // Check bounds and warp objects | 161 // Check bounds and warp objects |
162 if (body.position[0] < -sprt.width/2) { | 162 if (body.position[0] < -sprt.width/2) { |
163 body.setTransform(new Vector2(body.position[0] + this.width + sprt.width,
body.position[1]), rot); | 163 body.setTransform(new Vector2(body.position[0] + this.width + sprt.width,
body.position[1]), rot); |
164 } | 164 } |
165 if (body.position[0] > this.width + sprt.width/2) { | 165 if (body.position[0] > this.width + sprt.width/2) { |
166 body.setTransform(new Vector2(body.position[0] - (this.width + sprt.width)
, body.position[1]), rot); | 166 body.setTransform(new Vector2(body.position[0] - (this.width + sprt.width)
, body.position[1]), rot); |
167 } | 167 } |
168 if (body.position[1] < -sprt.height/2) { | 168 if (body.position[1] < -sprt.height/2) { |
(...skipping 13 matching lines...) Expand all 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 |