import ControlMapperSystem from './systems/control_mapper';
import DashSystem from './systems/dash';
import DrawDashSystem from './systems/draw_dash';
+import DrawGrabSystem from './systems/draw_grab';
import ElasticSystem from './systems/elastic';
+import GrabSystem from './systems/grab';
import PhysicsWorldControlSystem from './systems/physics_world_control';
import PhysicsToAttributesSystem from './systems/physics_to_attributes';
import RenderSystem from './systems/render';
this._engine.addSystem(new DashSystem());
+ this._engine.addSystem(new GrabSystem({
+ engine: this._matterJs
+ }));
+
this._engine.addSystem(new ApplyForceSystem());
this._engine.addSystem(new PhysicsWorldControlSystem({
this._engine.addSystem(new DrawDashSystem());
+ this._engine.addSystem(new DrawGrabSystem());
+
this._engine.addSystem(new RenderSystem({
application: this._pixi
}));
}
});
- const sumoA = SumoFactory.createSumo(null, {
+ const sumoA = SumoFactory.createPlayer1Sumo(null, {
position: {
x: this.horizontalResolution / 2 - 100,
y: this.verticalResolution / 2
}
});
- const sumoB = SumoFactory.createControllableSumo(null, {
+ const sumoB = SumoFactory.createPlayer2Sumo(null, {
position: {
x: this.horizontalResolution / 2 + 100,
y: this.verticalResolution / 2
entityB: harness
});
+ SumoFactory.createInvisibleBlock(this._engine, {
+ width: this.horizontalResolution * 2,
+ height: this.verticalResolution * 0.1,
+ position: {
+ x: this.horizontalResolution / 2,
+ y: -this.verticalResolution * 0.1
+ }
+ });
+
+ SumoFactory.createInvisibleBlock(this._engine, {
+ width: this.horizontalResolution * 2,
+ height: this.verticalResolution * 0.1,
+ position: {
+ x: this.horizontalResolution / 2,
+ y: this.verticalResolution + this.verticalResolution * 0.1
+ }
+ });
+
// To keep the coupling behind, we'll manually add the sumos later
this._engine.addEntity(sumoA);