Mat*_*hew 11 a-star path-finding game-ai gdscript godot
我一直在寻找一种强大的寻路方法,我正在开发基于平台游戏的游戏,A*看起来像是最好的方法.我注意到有一个关于Godot中AStar实现的演示.然而,它是为基于网格/磁贴的游戏编写的,我无法适应平台,其中Y轴受到重力的限制.
我找到了一个非常好的答案,描述了A*如何应用于Unity中的平台游戏.我的问题是......是否可以在Godot中使用AStar来实现上述答案中描述的相同内容?如果不使用内置的AStar框架,可以做得更好吗?在GDscript中它是如何工作(有或没有AStar)的一个非常简单的例子是什么?
虽然我已经发布了100点奖金(它已经过期),但我仍然愿意发布另外100点赏金并奖励它,等待回答这个问题.
PS:如果你在这个问题的正文中看到一些你觉得不合适的东西,需要注意或澄清......不要贬低我的投票!展示一些诚信并发表评论.你所做的一切都在伤害那些投票给我的其他人,并且实际上对这个问题的答案感兴趣.
您可以将Navigation2D节点重新用于平台游戏。下图显示了一个示例用法。Navigation2D 节点可以导航位于组合导航多边形(这是所有 NavigationPolygonInstances 的并集)内的两点之间的最短路径。
您可以使用该get_simple_path方法获取一个向量2数组,该数组描述您的代理/角色应该尝试按顺序达到(或接近,通过使用一些预定义的边距)的点。将每个点放入队列中,然后通过水平移动将角色移向不同的点。每当你的特工在队列中的下一个点太高而无法到达时,你就可以让特工跳跃。
我希望这是有道理的!
灰色/深蓝色矩形是发生碰撞的平台,而绿色形状是 NavigationPolygonInstance 节点
这种方法绝不是完美的。如果您要在游戏中实现斜坡,那么代理可能会跳上斜坡,而不是正常上升。创建所需的所有形状也相当乏味。
更强大的解决方案是拥有一个自定义图形系统,您可以将其放置在场景中并定位其顶点。这开启了创建单向路径并在仅标记为“可跳跃”的顶点之间具有某些边/连接的可能性。如果您在网上找不到任何此类解决方案,则需要做更多的工作。
| 归档时间: |
|
| 查看次数: |
502 次 |
| 最近记录: |