我正在制作一个游戏,用户在网格中移动并且必须收集乘客。我做了几乎所有事情,除了我需要检查玩家是否在乘客上移动,如果是,则显示一个警告框。这是我的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");
}
}
答案 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: ""
}
]