aboutsummaryrefslogtreecommitdiff
path: root/lib/sumo.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sumo.js')
-rw-r--r--lib/sumo.js32
1 files changed, 23 insertions, 9 deletions
diff --git a/lib/sumo.js b/lib/sumo.js
index 2b6f085..eef80d7 100644
--- a/lib/sumo.js
+++ b/lib/sumo.js
@@ -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
}
});