在我的App中,粉红色的心想要变成红色的!但正如您所见,道路被阻塞了。
我使用的代码是:
let solution = GridGraph.findPath(from: GridGraph.node(atGridPosition:int2(Int32(pinkHeart.positon.x),Int32(pinkHeart.positon.y)))!,to:GridGraph.node(a[enter image description here][1]tGridPosition:int2(Int32(redHeart.positon.x),Int32(redHeart.positon.y)))!) as! [GKGridGraphNode]
但是应用程序总是崩溃,因为没有办法!
如果我想找到一条从粉红色的心到黄色/绿色的路径,则该代码有效。
我尝试了多种方法来解决问题,但似乎无济于事...
例如:
do {
let solution = try GridGraph.findPath(from:GridGraph.node(atGridPosition:int2(Int32(pinkHeart.positon.x),Int32(pinkHeart.positon.y)))!, to:GridGraph.node(atGridPosition: int2(Int32(redHeart.positon.x),Int32(redHeart.positon.y)))!) as! [GKGridGraphNode]
} catch {
print("no path found")
}
或
if let solution = GridGraph.findPath(from:GridGraph.node(atGridPosition:int2(Int32(pinkHeart.positon.x),Int32(pinkHeart.positon.y)))!, to:GridGraph.node(atGridPosition: int2(Int32(redHeart.positon.x),Int32(redHeart.positon.y)))!) as! [GKGridGraphNode] {
//Do something!
}
我尝试了更多可能的解决方案,但始终崩溃...
谢谢您的帮助!
Thats the image:
答案 0 :(得分:0)
您可以这样操作:
var solutionPath: [GKGridGraphNode]? {
let solution = GridGraph.findPath(from: OneNode, to: anotherNode) as! [GKGridGraphNode]
if solution.isEmpty {
print("There is no possible path!")
return nil
}
else {
return solution
}
}