Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ktinho

porque nao consigo acessar os dados dessa funçao?

Recommended Posts

essa funçao conecta no servidor tcp e recebe os dados veja abaixo.

 

 

var socket = io.connect('http://localhost:4000');
 
 
 
 
function conexao(e)
{
 
 
var that = this;
 
 
 
socket.on('addPlayer',
function (data)
{
log("[addPlayer] {" + data.pid + ', ' + data.name + ', ' + data.x + ', ' + data.y + '}');
players[data.pid] = new Player(data.pid, data.x, data.y);
players[data.pid].name = data.name;
 
if(data.sessionid == socket.sessionid)
{
localId = data.pid;
localPlayer = that.players[data.pid];
}
}
);
 
 
socket.on('chat',
function (data)
{
log("[chat] {" + data.message + '}');
addChatMessage(data.message);
}
);
 
socket.on('position',
function (data)
{
log("[position] {" + data.pid + ": playerX = " + data.playerX + ", playerY = " + data.playerY + "}");
that.setPlayerPosition(data.pid, data.playerX, data.playerY);
}
);
 
console.log('connected!');
 
 
}
 
 

 

e essa funçao deveria pegar os dados e adicionar uma imagem conforme o id, posiçaox e posiçaoy selecionado pelo loop for in.

 

veja abaixo.

 

function anima(e)
{
 
 
 
for(var p in  players)
{
var player = players[p];
var xpos = (data.playerX-data.playerY)*this.tileH + mapX;
var ypos = (data.playerX+data.playerY)*this.tileH/2+ mapY;
      ctx.drawImage(charImg[0],xpos,ypos-(charImg[0].height/2)); 
 
}
}
 
entao parece que os dados obtido no retorno do servidor nao esta entrando no loop for in alguem sabe onde estou errando?

Compartilhar este post


Link para o post
Compartilhar em outros sites

no ultimo bloco, a array players tem valores?

você percorre essa array mas nao usa os dados dela em nenhum lugar naquela funcao.

a variavel data esta fora do escopo da function mesmo?

 

ao meu ver ficaria algo +- assim

for(var p in  players)
{
var player = players[p];
var xpos = (player.playerX-player.playerY)*this.tileH + mapX;
var ypos = (player.playerX+player.playerY)*this.tileH/2+ mapY;
      ctx.drawImage(charImg[0],xpos,ypos-(charImg[0].height/2));
 
}

nao sei a estrutura do player, substitui o playerX e o playerY pelo nome da variavel q você colocou

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola amigo eu quero percorrer essa linha

 

players[data.pid] = new Player(data.pid, data.x, data.y);

que contem os ids e posiçoesx e posiçoesy e colocar dentro da function anima entende?

 

ou melhor eu só quero passar os valores de data para a funçao anima que tem os ids as posiçoesx e posiçoesy de cada imagem e colocar dentro das variaveis xpos e ypos, mas eu nao estou conseguindo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.