chuck.js/lib/Chuck/Processor.js

80 lines
1.8 KiB
JavaScript
Executable file

var requires = [
"Chuck/View/ViewController",
"Chuck/Physics/Engine",
"Chuck/Player",
"Chuck/Control/InputControlUnit",
"Chuck/Settings",
"Vendor/Box2D",
"Chuck/Loader/Level",
"RequestAnimationFrame"
];
define(requires, function(ViewController, PhysicsEngine, Player, InputControlUnit, Settings, Box2D, Level, requestAnimFrame){
function Processor () {
if(Settings.IS_BROWSER_ENVIRONMENT) {
this.initClient();
} else {
this.initServer();
}
};
Processor.prototype.initClient = function() {
this.viewController = new ViewController();
this.physicsEngine = new PhysicsEngine();
this.me = new Player(this.physicsEngine, null);
this.me.spawn(100, 0);
this.inputControlUnit = new InputControlUnit(this.me);
this.physicsEngine.setCollisionDetector(this.me);
this.update();
}
Processor.prototype.initServer = function() {
this.physicsEngine = new PhysicsEngine();
//this.physicsEngine.setCollisionDetector(players);
this.update();
}
Processor.prototype.loadLevel = function(path) {
if (this.level) {
this.level.unload();
}
this.level = new Level(path, this.physicsEngine);
this.level.loadLevelInToEngine();
}
Processor.prototype.getPhysicsEngine = function() {
return this.physicsEngine;
}
Processor.prototype.getMe = function() {
return this.me;
}
Processor.prototype.update = function() {
requestAnimFrame(this.update.bind(this));
//console.log(self.physicsEngine.getWorld().GetBodyList().GetPosition());
this.physicsEngine.update();
if(Settings.IS_BROWSER_ENVIRONMENT) {
this.viewController.update();
this.inputControlUnit.update();
this.me.update();
//self.camera.update();
//self.repository.update();
}
}
Processor.prototype.destruct = function() {
}
return Processor;
});