填满区域并构建A星状路径

时间:2018-10-11 06:35:44

标签: algorithm graph game-engine a-star flood-fill

考虑在2d网格上进行基于回合的游戏,其中一个棋子可以移动到一个无人居住的单元格,前提是它只需采取一定步骤即可到达该单元格。选中该部分后,我想突出显示所有可能的目标单元并显示它们-在这里,我使用泛洪来递归地构建可用单元的地图,然后将其覆盖在板上。一旦选择了有效的正方形,我便使用A *查找该块将要跟随的正方形的路径。

从直觉上看,这种方法似乎浪费了很多精力-我不得不生成一组可步行的正方形,而只是做额外的工作来搜索并实际步行即可。

这似乎是许多游戏中的常见功能,是否已经有了一种简化的方法?或许,鉴于洪水填埋场产生的网格是不规则的,但可以保证可行走,那么看起来的过度劳累可以忽略不计吗?

1 个答案:

答案 0 :(得分:2)

当然,只要记住您在洪水填充期间所走的路(从概念上讲,它实际上是广度优先搜索)。

这通常是通过在探索过程中记住前身细胞来完成的。有了最后一个单元格(即用户单击它)后,通过遵循先前的链接来遍历路径,直到找到起始节点。就像您在A *末尾所做的一样。唯一的区别是,现在通过BFS方法可以计算出前向通过。