如何检查玩家是否移动到带有字母" P"内...?

时间:2014-03-31 21:40:46

标签: javascript jquery

我正在上课,我几乎完成了所有事情,除了我需要检查玩家是否在乘客上移动,如果是,则显示一个警告框。这是我的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上,但保留颜色,所以为什么我需要第二个地图数组的帮助存放乘客和基地(或其他合适的替代方案)。

1 个答案:

答案 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]);