gpt4 book ai didi

javascript - 无法正确更改 Pacman Tilemap

转载 作者:行者123 更新时间:2023-11-29 15:32:37 27 4
gpt4 key购买 nike

下面的代码应该用空格替换 tilemap 索引,但是没有任何反应。

瓷砖 map :

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[i] 或什至 tilemap[j] 而不是 tilemap[i][j],它会按照您的想法进行操作,而 tilemap[i][j] 适用于在它所在的循环中遍历瓦片 map 。换句话说,这会更改瓦片 map 中的整行:

if (Player.x > j*25 &&
Player.x < j*25+25 &&
Player.y > i*25 &&
Player.y < i*25+25
) {
tilemap[i] = ' ';
}

最佳答案

tilemap 是一维字符串数组,每个字符串包含 16 个字符。从语法上讲,字符串接受数组表示法以在其中查找字符,使 stringgVar[i] 等同于 stringVar.charAt(i) 这解释了为什么在读取数组时, tilemap[i][j] 返回 tilemap 中第 i 个字符串中的第 j 个字符,不会引发错误。

现在你遇到了我以前从未见过的东西。

如果您将某些内容分配给 tilemap[i][j] javascript 从 tilemap 数组中获取第 i 个字符串,将其视为一个 String 对象 可以向其中添加属性,并添加一个以 j 的值命名的属性和在分配的 RHS 上指定的属性值。

但是,如果您尝试在赋值后读回它,则用于读取的数组语法优先,您只会得到第 i 个字符串的第 j 个字符。

谢谢你的提问。惊人的!


自由更新:您不能更新原始 String 对象中的字符,您只能使用它的值或它的部分值来组成一个新的字符串。查看使用 String方法 substrsubstring 来实现你想做的事情。 (更新时,您需要替换 tilemap 中的完整字符串条目。)

关于javascript - 无法正确更改 Pacman Tilemap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33203685/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com