我目前正在Unity中制作一个2D侧面滚动游戏(所以所有的精灵都是从侧面查看的)。
我有程序生成的地形(所以想想Terraria-esque),我希望能够点击我的一个瓷砖并有一个精灵路径。
然而,精灵需要知道以下事项:
我目前将我的瓷砖存储为短阵列。
知道这一点,A *是我追求的最佳算法吗?有没有人有任何其他好的信息/提示,从哪里开始研究这类事情?
我的主要概念难点是让AI知道是否可以访问磁贴。
感谢任何帮助/指示!
答案 0 :(得分:1)
A *是找到最短路径的好方法,但是用来查找是否存在路径很重要。这是因为它在意识到没有路径之前正在搜索整个可访问空间。您可以使用this online tool来使用不同的搜索算法。
快速入侵您可以用来判断每个不同空间的路径是否是存储ID,所有节点都可以互相访问。这些ID很容易通过遍历所有可访问节点的递归函数进行分配。在递归终止之后,再次使用来自另一个尚未拥有任何ID的空间的ID重新启动它。希望以下图片澄清了我的观点:
11111¤22222¤
111¤¤¤222¤¤¤
1¤¤¤3¤¤¤¤¤44
¤¤3333¤¤4444
其中¤
是墙,而数字是空格的ID。当然,您需要将存储从短阵列更改为其他内容,因为您需要为每个节点存储额外的短路。