因为在javascript中是不正常的

因为在javascript中是不正常的,javascript,html,canvas,Javascript,Html,Canvas,不知道发生了什么 此函数 应该放 新选手 对于数组中的每个名称 function newplayer() { var y = data.playerY; var x = data.playerX; var player =""; var players={name1:"Jao",name2:"lucas",name3:"pedro",name4:"jorge"}; for(var p in players) { player = players[p]; var xpo

不知道发生了什么 此函数 应该放 新选手 对于数组中的每个名称

function newplayer() {
var y = data.playerY;   
var x = data.playerX;

var player ="";
var players={name1:"Jao",name2:"lucas",name3:"pedro",name4:"jorge"}; 

for(var p in players)
{
    player = players[p];
    var xpos = (x-y)*tileH + mapX;
    var ypos = (x+y)*tileH/2+ mapY;

    ctx.drawImage(charImg[0],xpos,ypos-(charImg[0].height/2));  
    //ctx.fillText(player.name, xpos + 10, ypos - (charImg[0].height/2) - 5);
}

}
编辑:设法获得 更改代码 var player=players[p],for player=players[p]

obrigado vocês que me ajudarão 包容性Igor


对不起,我的英语我来自巴西

我猜问题出在你注释掉的那行?这个:

//ctx.fillText(player.name, xpos + 10, ypos - (charImg[0].height/2) - 5);
因为否则你甚至不需要循环,因为你没有使用
player
p
。如果这是真的,问题是
player。name
将是未定义的。考虑到您的对象和循环方式,
player
将保留播放器名称。因此:

ctx.fillText(player, xpos + 10, ypos - (charImg[0].height/2) - 5);

您似乎希望以玩家数组的形式访问玩家。但您使用的对象不是集合

function newplayer() {
     var y = data.playerY;   
     var x = data.playerX;

     var players=[
            { name: "Jao" },
            { name: "lucas"},
            { name: "pedro"},
            { name:"jorge" }]; 

     for(var player in players)
     {
         var xpos = (x-y)*tileH + mapX;
         var ypos = (x+y)*tileH/2+ mapY;

         ctx.drawImage(charImg[0],xpos,ypos-(charImg[0].height/2));  
         ctx.fillText(player.name, xpos + 10, ypos - (charImg[0].height/2) - 5);
     }

}

如果您不想添加有关播放机的附加信息,那么您可以简单地将其设置为字符串数组。

您的foreach代码是正确的,您的问题应该在其他地方。删除
var
in
var player=players[p]
@Igor that
var
关键字是多余的,但这不是一个bug演示小提琴怎么样?我可以在变量player中为每个玩家添加一个我想添加更多的玩家一个玩家示例:joão one player,lucas player two,pedro tree player,忽略这一行:ctx.fillText(player,xpos+10,ypos-(charImg[0].height/2)-5);我们需要更多的细节。您当前的循环与player无关,您定义
player
,但从不使用它。如果我将我的全部代码放在这里,您将无法理解alias有一个客户端和一个服务器:用户“Igor”帮助了我。我所有的代码都超过120行