Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中的探路者_Javascript_Html - Fatal编程技术网

javascript中的探路者

javascript中的探路者,javascript,html,Javascript,Html,我正在制作一种javascript游戏,我基本上有一堆由一个小脚本生成的图块(div)。我知道寻路的基本知识以及如何使用我的瓷砖等 但是,我遇到了一点麻烦,就是在某种程度上存储了这些瓷砖,这样我就可以从我的瓷砖中挑出8个周围的瓷砖 所以基本上,让我们假设我站在瓷砖上 (E-tiles,T-tile我在,B-tile我想去) E E E E E E E T E B E E E E E E 现在我想“找到”我周围的瓷砖,我需要关于如何做的帮助/提示(也就是说,我需要关于如何存储瓷砖的提示,以便我以后

我正在制作一种javascript游戏,我基本上有一堆由一个小脚本生成的图块(div)。我知道寻路的基本知识以及如何使用我的瓷砖等

但是,我遇到了一点麻烦,就是在某种程度上存储了这些瓷砖,这样我就可以从我的瓷砖中挑出8个周围的瓷砖

所以基本上,让我们假设我站在瓷砖上

(E-tiles,T-tile我在,B-tile我想去)

E E E E E E

E T E B

E E E E E E

现在我想“找到”我周围的瓷砖,我需要关于如何做的帮助/提示(也就是说,我需要关于如何存储瓷砖的提示,以便我以后可以“浏览”它们)

我想找到这些没有问题

(E-tiles,T-tile我在,B-tile我想去,Y-What我想找到)

是的,是的

Y T Y E B

是的,是的

还有一点额外的好处是如何存储这些,例如,我从所选的“Y”瓷砖中选择一个瓷砖,然后遍历它们,最后选择一个使我更接近“B”的瓷砖


任何提示/窍门/帮助都非常有用!

您可以将您的世界存储为一个瓷砖阵列,索引表示x/y坐标

var world = [];
world.height = 10;
world.width = 20;

for (var x = world.width; x--;) {
    for (var y = world.height; y--;) {
        if (!world[x]) world[x] = [];
        world[x][y] = new Tile();
    }
}
var player = {
    position: { x: 3, y: 5 }
};
你的玩家也会有x/y坐标

var world = [];
world.height = 10;
world.width = 20;

for (var x = world.width; x--;) {
    for (var y = world.height; y--;) {
        if (!world[x]) world[x] = [];
        world[x][y] = new Tile();
    }
}
var player = {
    position: { x: 3, y: 5 }
};
如果要确定任意位置是否为播放器旁边的8个磁贴之一:

if (player.position.x == x && player.position.y == y) {

    // the tile at x,y is occupied by your player

} else if (Math.abs(player.position.x - x) <= 1 && 
           Math.abs(player.position.y - y) <= 1) {

    // the tile at x,y is next to your player

}

你能一直移动到你旁边的任何一块瓷砖吗,或者一些瓷砖会被阻挡,所以你需要四处走动吗?好吧,最终会有墙,但墙后面不会有瓷砖,所以我猜是和否。所以,你能“找到”的每一块瓷砖“你可以去。但正如我所说,我可以在以后管理寻路,只是我需要一种智能的方式来存储瓷砖。我想这回答了你的问题,但我觉得你可能已经知道了。如果我误解了你的问题,请告诉我。我并不真正支持你如何使用世界[],假设它是一个数组,我从来没有见过它有两个标记world[x][y]。另外,我需要知道用户按下了什么磁贴,假设他在磁贴1,1上并按下了磁贴7,2。我想能够记录他按下了什么磁贴,我该如何以一种智能的方式来做这件事呢:
x-->
y-->)
@self它是
for
语句的条件表达式和空的最终表达式(以及右参数)。