A * Pathfinder变体不允许移动到某些图块

时间:2016-06-21 15:13:44

标签: ios arrays swift sprite-kit

我正在尝试创建一个可由角色遍历的网格。

网格由[Int]数组创建,如下所示:

args

然后我使用此traversableTiles()函数来查找角色可以移动到的切片。在这种情况下,输入到tile中的数组中的第一个int为0表示可遍历的tile。

let tiles = [
    [(0,1), (0,2), (0,1), (0,2), (0,1), (0,2), (0,1), (0,2), (0,1), (0,2)],
    [(0,2), (0,1), (0,2), (0,1), (0,2), (0,1), (0,2), (0,1), (0,2), (0,1)],
    [(0,1), (0,2), (0,1), (0,2), (0,1), (0,2), (0,1), (0,2), (0,1), (0,2)],
    [(0,2), (0,1), (0,2), (0,1), (0,2), (0,1), (0,2), (0,1), (0,2), (0,1)],
    [(0,1), (0,2), (0,1), (0,2), (2,1), (0,2), (0,1), (0,2), (0,1), (0,2)],
    [(0,2), (0,1), (0,2), (0,1), (0,2), (0,1), (0,2), (0,1), (0,2), (0,1)],
    [(0,1), (0,2), (0,1), (0,2), (0,1), (0,2), (0,1), (0,2), (0,1), (0,2)],
    [(0,2), (0,1), (0,2), (0,1), (0,2), (0,1), (0,2), (0,1), (0,2), (0,1)],
    [(0,1), (0,2), (0,1), (0,2), (0,1), (0,2), (0,1), (0,2), (0,1), (0,2)],
    [(0,2), (0,1), (0,2), (0,1), (0,2), (0,1), (0,2), (0,1), (0,2), (0,1)]
]

以下是整个Global结构:

func traversableTiles() -> [[Int]] {

    var tTiles = [[Int]]()

    func binarize(num:Int) ->Int {
        if (num == 1) {
            return Global.tilePath.nonTraversable
        } else {
            return Global.tilePath.traversable
        }
    }

    for i in 0..<tiles.count {
        let tt = tiles[i].map{i in binarize(i.0)}
        tTiles.append(tt)
    }

    return tTiles
}

当被告知移动到任何不是FIRST ROW或LAST COLUMN的牌时,角色将使用下面的A * Pathfinder类正确移动。当选择这些位置中的任何一个上的图块时,没有任何反应。这个角色有没有理由认为它不能移动到这些瓷砖上?

struct Global {
struct tilePath {
    static let traversable = 0
    static let nonTraversable = 1
}
}

0 个答案:

没有答案