diff --git a/app/Game/Client/GameController.js b/app/Game/Client/GameController.js index f7823eb..9e24728 100755 --- a/app/Game/Client/GameController.js +++ b/app/Game/Client/GameController.js @@ -1,4 +1,4 @@ -var requires = [ +define([ "Game/Client/View/ViewController", "Game/Core/Physics/Engine", "Game/Core/Player", @@ -7,9 +7,9 @@ var requires = [ "Game/Core/Loader/Level", "Lib/Vendor/Box2D", "Lib/Utilities/RequestAnimFrame" -]; +], -define(requires, function(ViewController, PhysicsEngine, Player, KeyboardController, Settings, Level, Box2D, requestAnimFrame) { +function(ViewController, PhysicsEngine, Player, KeyboardController, Settings, Level, Box2D, requestAnimFrame) { function GameController (clientGame) { this.clientGame = clientGame; diff --git a/app/Game/Core/GameController.js b/app/Game/Core/GameController.js index e69de29..07e4c1f 100644 --- a/app/Game/Core/GameController.js +++ b/app/Game/Core/GameController.js @@ -0,0 +1,50 @@ +define([ + "Game/Core/Physics/Engine" + "Game/Core/Loader/Level" +], + +function(Engine, Level, ) { + + function GameController(physicsEngine) { + this.players = {}; + + if (! physicsEngine instanceof Engine) { + throw physicsEngine + " is not of type Engine"; + } + + this.physicsEngine = physicsEngine; + } + + GameController.prototype.getPhysicsEngine = function() { + return this.physicsEngine; + } + + GameController.prototype.loadLevel = function(path) { + if (this.level) { + this.level.unload(); + } + + this.level = new Level(path, this.physicsEngine); + this.level.loadLevelInToEngine(); + } + + GameController.prototype.destroy = function() { + for(var player in this.players) { + this.players[player].destroy(); + } + delete this.players; + } + + GameController.prototype.userJoined = function(user) { + var player = new Player(this.physicsEngine, id); + this.players[user.id] = player; + } + + GameController.prototype.userLeft = function(user) { + var player = this.players[user.id]; + player.destroy(); + delete this.players[user.id]; + } + + return GameController; +}); diff --git a/app/Game/Server/GameController.js b/app/Game/Server/GameController.js index 7da278c..eea1e3b 100755 --- a/app/Game/Server/GameController.js +++ b/app/Game/Server/GameController.js @@ -1,4 +1,4 @@ -var requires = [ +define([ "Chuck/Physics/Engine", "Chuck/Settings", "Chuck/Player", @@ -6,9 +6,9 @@ var requires = [ "Chuck/Loader/Level", "Chuck/Control/InputController", "RequestAnimationFrame" -]; +], -define(requires, function(PhysicsEngine, Settings, Player, Box2D, Level, InputController, requestAnimFrame){ +function(PhysicsEngine, Settings, Player, Box2D, Level, InputController, requestAnimFrame) { function ServerProcessor (serverGame) { this.serverGame = serverGame; diff --git a/package.json b/package.json index 15afafd..83b7280 100644 --- a/package.json +++ b/package.json @@ -25,5 +25,6 @@ "node": "*" }, "config": { "port": "1234" }, - "private": true + "private": true, + "scripts": {"start": "node app.js"} }