добавить нового игрока на холсте карты html5 - PullRequest
0 голосов
/ 02 марта 2012

как добавить нового игрока на карту? основа игры http://jsfiddle.net/fUm6n/10/

, таким образом, добавляет только одного игрока

var map = Array(
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]);

var objectMap = Array(
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);
var objectDict = Array("wall.png","rock.png","table.png");
var tileDict = Array("water.png","land.png","swamp.png");
var charDict = Array("mario.png");
var charImg = new Array();
var tileImg = new Array();
var objectImg = new Array();
var loaded = 0;
var loadTimer;
var ymouse;
var xmouse;
var mapX = 550;
var mapY = -100;
var playerX = 10;
var playerY = 10;
var newplayerX = 5;
var newplayerY = 10;
var name = '';
var user = 2;
var jogador = 2;
var omapx = 5;
var omapy = 10;


var chat = io.connect('http://localhost:8000/chat');










function loadImg(){
    for(var i=0;i<tileDict.length;i++){
        tileImg[i] = new Image();
        tileImg[i].src = tileDict[i];
        tileImg[i].onload = function(){
            loaded++;
        }
    }
for(var i=0;i<charDict.length;i++){
    charImg[i] = new Image();
    charImg[i].src = charDict[i];
    charImg[i].onload = function(){
        loaded++;
        }
    }
for(var i=0;i<objectDict.length;i++){
    objectImg[i] = new Image();
    objectImg[i].src = objectDict[i];
    objectImg[i].onload = function(){
        loaded++;
    }
}
}

function loadAll(){
    if(loaded == tileDict.length + charDict.length + objectDict.length){
        clearInterval(loadTimer);
        loadTimer = setInterval(gameUpdate,50);
    }
}


function gameUpdate(){
    ctx.clearRect(0,0,350,230)
    drawMap();
}


function mouseCheck(e){
        var x = e.pageX;
        var y = e.pageY;
        ymouse=(2*(y-canvas.offsetTop-mapY)-x+canvas.offsetLeft+mapX)/2;
        xmouse=x+ymouse-mapX-25-canvas.offsetLeft
        ymouse=Math.round(ymouse/25);
        xmouse=Math.round(xmouse/25);
        document.title = "tileY:" + ymouse + " | tileX:" + xmouse;
}


function drawMap(){
var tileH = 25;
var tileW = 50;
        for(i=0;i<map.length;i++){
                for(j=0;j<map[i].length;j++){
                    var drawTile = map[i][j];
                    var jogador = map[i][j];
                    var drawObj = objectMap[i][j];
                    var xpos = (i-j)*tileH + mapX;
                    var ypos = (i+j)*tileH/2+ mapY;
                    ctx.drawImage(tileImg[drawTile],xpos,ypos);
                    if(drawObj){
                        ctx.drawImage(objectImg[drawObj-                    1],xpos,ypos-(objectImg[drawObj-1].height/2));
                }

                if (jogador  && i == data.X && j == data.Y){
            ctx.drawImage(charImg[0],xpos,ypos-(charImg[0].height/2));
                }

изображение: http://imageshack.us/photo/my-images/171/imagemxen.png/

нужно сравнить если есть новый пользователь и добавьте карту: отредактируйте эту функцию, чтобы добавить нового игрока на карту

    //
//              if (jogador  && i == data.X && j == data.Y){
            ctx.drawImage(charImg[0],xpos,ypos-(charImg[0].height/2));
    //              }

добавление нового игрока в цикл для карты: -----------------------------------------благодарю вас------- --------------------------

...