这个阵列出了什么问题......?

时间:2014-04-01 12:21:59

标签: javascript jquery

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

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

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

这是功能:

旧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");
      }
    }

2 个答案:

答案 0 :(得分:0)

你有一个2x2阵列

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] = ...

你正在绘制一个4x1块

您的地图代码应如下所示

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

答案 1 :(得分:0)

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



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