簡體   English   中英

JavaScript中的探路者

[英]Pathfinder in javascript

我正在做一種JavaScript游戲,基本上我有一個小腳本生成的一堆瓦片(div)。 我知道尋路的基礎知識以及如何使用我的圖塊之類的東西。

但是,我有點麻煩的是以某種方式存儲了這些磁貼,因此我可以從我正在使用的磁貼中挑選出8個環繞的磁貼。

所以基本上說我站在瓷磚上

(我正在使用E-tiles,T-tile,我想去B-Tile)

EEEEEE

歐洲電信展

EEEEEE

現在,我想“查找”周圍的瓷磚,這需要我的幫助/操作技巧(也就是說,我需要有關如何存儲瓷磚的技巧,以便以后“瀏覽”它們”)。

我想找到這些沒有問題的東西。

(我正在使用E-tiles,T-tile,B-Tile,Y-我想要找到的東西)

YYYEEE

伊泰

YYYEEE

另外,在如何存儲這些內容方面也會有一點好處,例如,我知道。 我從選定的“ 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();
    }
}

您的播放器也將具有x / y坐標。

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

}

如果要查找玩家位置旁邊的8個磁貼,請執行以下操作:

var adjacentTiles = [
    world[player.position.x - 1][player.position.y],
    world[player.position.x + 1][player.position.y],
    world[player.position.x][player.position.y - 1],
    world[player.position.x][player.position.y + 1],
    world[player.position.x - 1][player.position.y - 1],
    world[player.position.x + 1][player.position.y - 1],
    world[player.position.x - 1][player.position.y + 1],
    world[player.position.x + 1][player.position.y + 1]
];

http://jsfiddle.net/KBLX5/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM