Я делаю игру для класса, и я сделал почти все, кроме как мне нужно проверить, движется ли игрок над пассажиром, и если да, отобразите окно предупреждения. Вот мой JSFiddle: http://jsfiddle.net/nZ8vA/7/. Как вы можете видеть, у меня есть массив, называемый map
который используется для построения сетки, а затем позже проверьте, какой цвет пользователь включен, однако мне нужно проверить, не переходят ли они также через "P", обозначенные буквой "P" в сетке. Я по умолчанию добавил map2
но ничего не сделал, я пытался создать второй массив карт для хранения пассажиров и базы, но я не мог понять, как это сделать.
Как проверить, просматривает ли пользователь поле с буквой "P", и, если это так, отображается предупреждение? Я создал функцию для проверки буквы "P", однако я создал это, когда использовал "p" в массиве map
, однако удалил цвета, которые не были тем, что я намеревался (мне все еще нужны цвета, следовательно, идея второй массив)).
function checkPass(cell, row) {
var pass = map[row][cell];
console.log(pass);
if (pass == "p") {
alert("Passenger");
}
}
Как я могу это сделать? (Примеры кода будут полезны (или в скрипке)
РЕДАКТИРОВАТЬ:
В моей скрипке под массивом карт я использую буква "P" вместо "g", "b" или "w" в некоторых строках. Так я знаю, что это работает, но в скрипке он заменяет проверку цвета на P. Мне нужен способ проверить, находятся ли они на P, но сохраняют цвета, поэтому поэтому мне нужна помощь со вторым массивом карт хранить пассажиров и базу (или другую подходящую альтернативу).
Вы можете заменить массив букв на 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]);
map
я использую букву «P» вместо «g», «b» или «w» в некоторых строках. Это было то, как я знаю, что это работает, но в скрипке он заменяет проверку цвета для P. Мне нужен способ проверить, находятся ли они на P, но сохранить цвета, поэтому, поэтому мне нужна помощь со вторым массивом карты, чтобы Храните пассажиров и базу (или другую подходящую альтернативу).