这个arrays出了什么问题……?

我正在制作一个游戏,用户在网格中移动并且必须收集乘客。 我几乎完成了所有事情,除了我需要检查玩家是否在乘客上方移动,如果是,则显示警告框。 这是我的JSFiddle: http : //jsfiddle.net/nZ8vA/9/和之前的: http : //jsfiddle.net/nZ8vA/7/ ,其中包含我以前的数组。 正如您所看到的,我有一个名为map的数组,用于构建网格。

在之前的JSFiddle中,我仍然试图让它检测用户何时收集乘客(地图中的字母“P”)。 在我最近的JSFiddle中,由于此前的帮助,我创建了一个二维对象数组。 地图没有完全构造,它应该看起来像是在第一个JSFiddle中,但它似乎将整行看作一种颜色。 如果您打开控制台并移动整个顶行,则不应该读为绿色。 我也认为它是按颜色读取乘客,这不是我想要的乘客在不同的颜色方块。

有人可以帮助我检测用户何时收集乘客,我有一个function,用“P”检测方块,但我需要保持相同的网格颜色布局。 我希望这是有道理的。

这是function:

老JSFiddle:

function checkPass(cell, row) { var pass = map[row][cell]; console.log(pass); if (pass == "p") { alert("Passenger"); } } 

新JSFiddle:

 function checkPass(cell, row) { var pass = map[row][cell].letter; console.log(pass); if (pass == "p") { alert("Passenger"); } } 

你有一个2x2arrays

 var map = [ [ { color: "g", letter: "" }, { color: "g", letter: "" }, ],[ { color: "w", letter: "p" }, { color: "b", letter: "" } ]]; map[0][1] = ... map[1][1] = ... map[1][0] = ... map[1][1] = ... 

而你正在绘制一个4×1块

你的地图代码应该是这样的

 var map = [ [ { color: "g", letter: "" }, { color: "g", letter: "" }, { color: "w", letter: "p" }, { color: "b", letter: "" } ]]; 

问题在于数组,因为您的网格有1行,但您的数组有2“行”。 有了它,它一直在为我工作:

 [ { color: "g", letter: "" }, { color: "g", letter: "" }, { color: "w", letter: "p" }, { color: "b", letter: "" } ]