我正在尝试创建一个可由角色遍历的网格。
网格由[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
}
}