]> git.r.bdr.sh - rbdr/sumo/blobdiff - lib/sumo.js
Draw the Arena (#7)
[rbdr/sumo] / lib / sumo.js
index 2b6f085bce02b488a70a4236a1cb4d1825656ea9..eef80d759ef547ab807163a7a3b7fa50c403411c 100644 (file)
@@ -1,10 +1,14 @@
 import 'babel-polyfill';
 
+import Config from './config';
+
 // Systems
+
 import ApplyForceSystem from './systems/apply_force';
 import CreateCouplingLineSystem from './systems/create_coupling_line';
 import ControlMapperSystem from './systems/control_mapper';
 import DashSystem from './systems/dash';
+import DrawDashSystem from './systems/draw_dash';
 import ElasticSystem from './systems/elastic';
 import PhysicsWorldControlSystem from './systems/physics_world_control';
 import PhysicsToAttributesSystem from './systems/physics_to_attributes';
@@ -31,13 +35,13 @@ const internals = {
 
   onLoad() {
 
-    const sumo = new internals.Sumo({
+    const sumo = new internals.Sumo(Object.assign({
       element: document.getElementById('sumo-app-entry-point')
-    });
+    }, Config));
 
     sumo.startLoop();
 
-    internals.exports.sumo = sumo;
+    window.sumo = sumo;
   }
 };
 
@@ -61,6 +65,7 @@ internals.Sumo = class Sumo {
 
   constructor(config) {
 
+    // These defaults can get overridden by config
     this.fps = 60;
     this.aspectRatio = [2.76, 1];
     this.verticalResolution = 224;
@@ -206,6 +211,8 @@ internals.Sumo = class Sumo {
 
     this._engine.addSystem(new CreateCouplingLineSystem());
 
+    this._engine.addSystem(new DrawDashSystem());
+
     this._engine.addSystem(new RenderSystem({
       application: this._pixi
     }));
@@ -215,24 +222,31 @@ internals.Sumo = class Sumo {
 
   _initializeEntities() {
 
+    SumoFactory.createArena(this._engine, {
+      position: {
+        x: this.horizontalResolution / 2,
+        y: this.verticalResolution / 2
+      }
+    });
+
     const sumoA = SumoFactory.createSumo(null, {
       position: {
-        x: 50,
-        y: 50
+        x: this.horizontalResolution / 2 - 100,
+        y: this.verticalResolution / 2
       }
     });
 
     const sumoB = SumoFactory.createControllableSumo(null, {
       position: {
-        x: 500,
-        y: 78
+        x: this.horizontalResolution / 2 + 100,
+        y: this.verticalResolution / 2
       }
     });
 
     const harness = SumoFactory.createHarness(null, {
       position: {
-        x: 309,
-        y: 112
+        x: this.horizontalResolution / 2,
+        y: this.verticalResolution / 2
       }
     });