不知道它会发生什么 这个功能 应该放 一个新的球员 对于数组中的每个名称
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],对于player = players [p];
obrigadovocêsquemeajudarão 包容性的伊戈尔
对不起我的英语我来自巴西
答案 0 :(得分:0)
我猜测问题出在你注释掉的那一行?这一个:
//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);
答案 1 :(得分:0)
您似乎想要以一系列玩家的身份访问玩家。但是你使用的对象不是一个集合。
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);
}
}
如果您不在播放器上添加其他信息,那么您可以简单地将其设为字符串数组。