From ddf8039008f3bbfe665cdb9eeaa9c5bd83f96e5c Mon Sep 17 00:00:00 2001 From: Thomas Perl Date: Sat, 15 Dec 2012 22:00:46 +0100 Subject: [PATCH] Multi-player support --- game.js | 159 +++++++++++++++++++++++++++++++------------------------- 1 file changed, 88 insertions(+), 71 deletions(-) diff --git a/game.js b/game.js index e502fa7..aa03490 100644 --- a/game.js +++ b/game.js @@ -20,55 +20,69 @@ function init_bandit() { } }, ready: function(stage) { - this.element = this.createElement(), - animation = canvas.Animation.new({ - images: "player", - animations: { - idle: { - frames: [0, 3], - size: { - width: 64, - height: 64 - }, - frequence: 5 - }, - kick: { - frames: [5*16, 5*16+6], - size: { - width: 64, - height: 64 - }, - frequence: 3 - }, - walk: { - frames: [16, 16+5], - size: { - width: 64, - height: 64 - }, - frequence: 5 - }, - die: { - frames: [4*16, 4*16+6], - size: { - width: 64, - height: 64 - }, - frequence: 15 - } - } - }); - - register_keys(); - - animation.add(this.element); - animation.play("idle", "loop"); - - this.element.xspeed = 0; - this.element.yspeed = 0; - this.element.defaultspeed = 2; - this.element.scaleX = 2; - this.element.scaleY = 2; + this.players = []; + + var that = this; + function addPlayer(index) { + var player = that.createElement(); + player.animation = canvas.Animation.new({ + images: "player", + animations: { + idle: { + frames: [0, 3], + size: { + width: 64, + height: 64 + }, + frequence: 5 + }, + kick: { + frames: [5*16, 5*16+6], + size: { + width: 64, + height: 64 + }, + frequence: 3 + }, + walk: { + frames: [16, 16+5], + size: { + width: 64, + height: 64 + }, + frequence: 5 + }, + die: { + frames: [4*16, 4*16+6], + size: { + width: 64, + height: 64 + }, + frequence: 15 + } + } + }); + + if (index === 0) { + register_keys(player); + } + + player.animation.add(player); + player.animation.play("idle", "loop"); + player.xspeed = 0; + player.yspeed = 0; + player.defaultspeed = 2; + player.scaleX = 2; + player.scaleY = 2; + stage.append(player); + + return player; + } + + this.players.push(addPlayer(0)); + + // would add remote players like this: + this.players.push(addPlayer(1)); var el = this.createElement(); el.fillStyle = "black"; @@ -90,15 +104,18 @@ function init_bandit() { this.health = health; set_health(100); - stage.append(this.element); stage.append(h); stage.append(this.health); stage.append(el); }, render: function(stage) { - this.element.defaultspeed = 2; - this.element.x += this.element.xspeed; - this.element.y += this.element.yspeed; + var i; + for (i=0; i