Следующий код должен заменить индекс tilemap пробелом, однако ничего не происходит.Неправильно изменен Tilemap Pacman
Tilemap:
var tilemap = [
"wwwwwwwwwwwwwwww",
"wmmmmmmmmmmmmmmw",
"wmwmwmwwwwmwmwmw",
"wmmbwmmmmmmwbmmw",
"wmwwwwwwwwwwwwmw",
"wmwmmmmssmmmmwmw",
" mwmwwwsswwwmwm ",
"wmwmwwwwwwwwmwmw",
" mwmwmmmmmmwmwm ",
"wmwmwmwwwwmwmwmw",
"wmwmmmmmmmmmmwmw",
"wmwmwwwwwwwwmwmw",
"wmwmwbmmmmbwmwmw",
"wmwmwmwwwwmwmwmw",
"wmmmmmmmmmmmmmmw",
"wwwwwwwwwwwwwwww",];
Код для изменения tilmap:
if (Player.x > j*25 &&
Player.x < j*25+25 &&
Player.y > i*25 &&
Player.y < i*25+25
) {
tilemap[i][j] = ' ';
}
Что странно, что если это tilemap [я] или даже tilemap [у] вместо tilemap [я] [ j], он делает то, что, по вашему мнению, будет, и tilemap [i] [j] работает для перемещения tilemap в петле, в которой он находится. Другими словами, это изменяет всю строку на карте плитки:
if (Player.x > j*25 &&
Player.x < j*25+25 &&
Player.y > i*25 &&
Player.y < i*25+25
) {
tilemap[i] = ' ';
}
Это очень долгое время, но для чистого использования было бы полезно использовать 'var map = [" www ... ", . ...] Foreach (функция (е) {e.split ("");}); '. Тогда ваш синтаксис работает так, как ожидалось, и не загрязняет код. – Nolo