| Index: sky/examples/game/lib/game_world.dart
|
| diff --git a/sky/examples/game/lib/game_world.dart b/sky/examples/game/lib/game_world.dart
|
| deleted file mode 100644
|
| index 6be46e2afa4351bfc821379b933b7c0a8b646939..0000000000000000000000000000000000000000
|
| --- a/sky/examples/game/lib/game_world.dart
|
| +++ /dev/null
|
| @@ -1,191 +0,0 @@
|
| -part of game;
|
| -
|
| -class GameWorld extends Node {
|
| -
|
| - World world;
|
| - List<Body> bodies = [];
|
| - Body _bodyShip;
|
| -
|
| - Image _imgBg;
|
| - Image _imgAsteroid;
|
| - Image _imgShip;
|
| -
|
| - double _steeringInput;
|
| - double _thrustInput;
|
| - double _lastSteeringSpeed = 0.0;
|
| -
|
| - GameWorld(ImageMap images) {
|
| - this.width = 1024.0;
|
| - this.height = 1024.0;
|
| -
|
| - // Fetch images
|
| - _imgBg = images["https://raw.githubusercontent.com/slembcke/GalacticGuardian.spritebuilder/GDC/Packages/SpriteBuilder%20Resources.sbpack/resources-auto/BurnTexture.png"];
|
| - _imgAsteroid = images["https://raw.githubusercontent.com/slembcke/GalacticGuardian.spritebuilder/GDC/Packages/SpriteBuilder%20Resources.sbpack/Sprites/resources-auto/asteroid_big_002.png"];
|
| - _imgShip = images["https://raw.githubusercontent.com/slembcke/GalacticGuardian.spritebuilder/GDC/Packages/SpriteBuilder%20Resources.sbpack/Sprites/resources-auto/GG_blueship_Lv3.png"];
|
| -
|
| - // Create the physics world
|
| - world = new World.withGravity(new Vector2(0.0, 0.0));
|
| -
|
| - // Add a background
|
| - addBackground();
|
| -
|
| - // Add some asteroids to the game world
|
| - for (int i = 0; i < 50; i++) {
|
| - addAsteroid(10.0);
|
| - }
|
| - for (int i = 0; i < 50; i++) {
|
| - addAsteroid(20.0);
|
| - }
|
| -
|
| - // Add ship
|
| - addShip();
|
| - }
|
| -
|
| - void addBackground() {
|
| - Sprite sprtBg = new Sprite.withImage(_imgBg);
|
| - sprtBg.width = width;
|
| - sprtBg.height = height;
|
| - sprtBg.pivot = new Vector2(0.0, 0.0);
|
| - this.addChild(sprtBg);
|
| - }
|
| -
|
| - void addAsteroid([double radius=20.0]) {
|
| -
|
| - // Create shape
|
| - final CircleShape shape = new CircleShape();
|
| - shape.radius = radius;
|
| -
|
| - // Define fixture (links body and shape)
|
| - final FixtureDef activeFixtureDef = new FixtureDef();
|
| - activeFixtureDef.restitution = 1.0;
|
| - activeFixtureDef.density = 0.05;
|
| - activeFixtureDef.shape = shape;
|
| -
|
| - // Define body
|
| - final BodyDef bodyDef = new BodyDef();
|
| - bodyDef.type = BodyType.DYNAMIC;
|
| - bodyDef.position = new Vector2(0.0, 30.0);
|
| - bodyDef.linearDamping = 0.0;
|
| - bodyDef.angularDamping = 0.0;
|
| -
|
| - // Create body and fixture from definitions
|
| - final Body body = world.createBody(bodyDef);
|
| - body.createFixtureFromFixtureDef(activeFixtureDef);
|
| -
|
| - // Set position of object
|
| - Math.Random rand = new Math.Random();
|
| - body.setTransform(new Vector2(rand.nextDouble() * this.width, rand.nextDouble() * this.height), 0.0);
|
| - body.applyLinearImpulse(new Vector2(rand.nextDouble()*10000.0-5000.0, rand.nextDouble()*10000.0-5000.0), new Vector2(0.0, 0.0), true);
|
| -
|
| - // Add to list
|
| - bodies.add(body);
|
| -
|
| - // Create sprite
|
| - Sprite sprt = new Sprite.withImage(_imgAsteroid);
|
| - sprt.width = radius*2;
|
| - sprt.height = radius*2;
|
| -// sprt.colorOverlay = new Color(0x33ff0000);
|
| -// sprt.transferMode = TransferMode.plusMode;
|
| - body.userData = sprt;
|
| - this.addChild(sprt);
|
| - }
|
| -
|
| - void addShip() {
|
| - double radius = 30.0;
|
| -
|
| - // Create shape
|
| - final CircleShape shape = new CircleShape();
|
| - shape.radius = radius;
|
| -
|
| - // Define fixture (links body and shape)
|
| - final FixtureDef activeFixtureDef = new FixtureDef();
|
| - activeFixtureDef.restitution = 1.0;
|
| - activeFixtureDef.density = 0.05;
|
| - activeFixtureDef.shape = shape;
|
| -
|
| - // Define body
|
| - final BodyDef bodyDef = new BodyDef();
|
| - bodyDef.type = BodyType.DYNAMIC;
|
| - bodyDef.position = new Vector2(0.0, 30.0);
|
| - bodyDef.linearDamping = 0.0;
|
| - bodyDef.angularDamping = 0.95;
|
| -
|
| - // Create body and fixture from definitions
|
| - final Body body = world.createBody(bodyDef);
|
| - body.createFixtureFromFixtureDef(activeFixtureDef);
|
| -
|
| - // Center on screen
|
| - body.setTransform(new Vector2(width/2.0, height/2.0), 90.0);
|
| -
|
| - // Add to list
|
| - bodies.add(body);
|
| - _bodyShip = body;
|
| -
|
| - // Create sprite
|
| - Sprite sprt = new Sprite.withImage(_imgShip);
|
| - sprt.width = radius*2;
|
| - sprt.height = radius*2;
|
| - sprt.position = new Vector2(width/2.0, height/2.0);
|
| - body.userData = sprt;
|
| - this.addChild(sprt);
|
| - }
|
| -
|
| - void update(double dt) {
|
| - // Apply thrust
|
| - if (_thrustInput != null) {
|
| - double force = _thrustInput*10000.0;
|
| - double rad = degrees2radians(_bodyShip.getAngle());
|
| - _bodyShip.applyLinearImpulse(new Vector2(Math.cos(rad)*force, Math.sin(rad)*force), new Vector2(0.0, 0.0), true);
|
| - }
|
| -
|
| - // Simulate world
|
| - world.stepDt(1.0/60.0, 10, 10); // Pass in dt
|
| -
|
| - // Apply stearing
|
| - if (_steeringInput != null) {
|
| - _lastSteeringSpeed = _steeringInput * 4.0;
|
| - }
|
| - else {
|
| - _lastSteeringSpeed *= 0.75;
|
| - }
|
| - _bodyShip.setTransform(_bodyShip.position, _bodyShip.getAngle() + _lastSteeringSpeed);
|
| -
|
| - // Update all sprites
|
| - bodies.forEach(updateBody);
|
| - }
|
| -
|
| - void updateBody(Body body) {
|
| - Sprite sprt = body.userData;
|
| - double rot = 0.0; //body.getRotation();
|
| -
|
| - // Check bounds and warp objects
|
| - if (body.position[0] < -sprt.width/2) {
|
| - body.setTransform(new Vector2(body.position[0] + this.width + sprt.width, body.position[1]), rot);
|
| - }
|
| - if (body.position[0] > this.width + sprt.width/2) {
|
| - body.setTransform(new Vector2(body.position[0] - (this.width + sprt.width), body.position[1]), rot);
|
| - }
|
| - if (body.position[1] < -sprt.height/2) {
|
| - body.setTransform(new Vector2(body.position[0], body.position[1] + this.height + sprt.height), rot);
|
| - }
|
| - if (body.position[1] > this.height + sprt.height/2) {
|
| - body.setTransform(new Vector2(body.position[0], body.position[1] - (this.height + sprt.height)), rot);
|
| - }
|
| -
|
| - // Update sprite
|
| - sprt.position = body.position;
|
| - sprt.rotation = body.getAngle();
|
| - }
|
| -
|
| - void controlSteering(double input) {
|
| - _steeringInput = input;
|
| - }
|
| -
|
| - void controlThrust(double input) {
|
| - _thrustInput = input;
|
| - }
|
| -
|
| - void controlFire() {
|
| -
|
| - }
|
| -}
|
|
|