我正在上课,我几乎完成了所有事情,除了我需要检查玩家是否在乘客上移动,如果是,则显示一个警告框。这是我的JSFiddle:http://jsfiddle.net/nZ8vA/7/。正如你所看到的,我有一个名为map
的数组,它用于构建网格,然后检查用户的颜色,但是我需要检查它们是否也超过了“P”,由网格中的字母“P”表示。我默认添加了map2
但是没有做任何事情,我试图制作第二个地图数组来存储乘客和基地,但我无法弄清楚如何去做。
如何检查用户是否越过带有字母“P”的框,如果是,则显示警告?我创建了一个函数来检查字母“P”,但是当我在map
数组中使用“p”时我创建了这个函数,但是它删除了不是我想要的颜色(我仍然需要颜色,因此第二个数组的想法))。
function checkPass(cell, row) {
var pass = map[row][cell];
console.log(pass);
if (pass == "p") {
alert("Passenger");
}
}
我该怎么做?(代码示例会有所帮助(或小提琴)
编辑:
在地图数组下的小提琴中,我在某些行中使用字母“P”而不是“g”,“b”或“w”。这就是我知道它的工作原理,但是在小提琴中它取代了P的颜色检查。我需要一种方法来检查它们是否在P上,但保留颜色,所以为什么我需要第二个地图数组的帮助存放乘客和基地(或其他合适的替代方案)。
答案 0 :(得分:0)
您可以使用2d对象数组替换字母数组。像这样:
var map = [
[
{
color: "g",
letter: "p"
},
{
color: "g",
letter: ""
},
],[
{
color: "w",
letter: "p"
},
{
color: "b",
letter: ""
}
]];
这将代表2x2"地图"。
然后你检查乘客的代码是这样的:
function checkPass(cell, row) {
var pass = map[row][cell].letter;
console.log(pass);
if (pass == "p") {
alert("Passenger");
}
}
使用字母表示颜色的现有代码将是这样的:
var color = map[row][cell].color;
$('#grid .box:eq(' + count + ')').addClass(class_color[color]);