Questions tagged «path-finding»

用来绘制从一个点到另一个点的行进路线的方法,通常可以避免途中的障碍。

6
具有物理模型的船舶的AI控制
我正在寻找有关如何在2D空间中实现跟踪的想法。不幸的是,我对AI /路径查找/自主控制了解不多。 假设这艘船可以自由移动,但它具有质量和动量。同样,外力可能会影响它(爆炸等)。玩家可以随时为飞船设定目标,并且该目标应到达该地点并停止。 没有物理学,这将很简单,只需指出方向即可。但是,如何应对现有的势头然后停下来呢?我不想直接修改船的位置。 编辑:只是要弄清楚,与船舶本身的物理相关的数学并不是问题。

7
如何使A *代理避免其他代理?
我正在图块地图上实现多代理A *算法。代理仅在X和Y轴上移动。通过在计算路径时检查其他位置,我避免了它们之间的冲突。 除代理必须从不同方向传递同一图块的情况外,此方法都可以正常工作。在这种情况下,最佳解决方案是让一个代理等待另一个代理通过: 另外,如果没有北方走廊,寻路也会失败。 如何实现这种算法?

3
实时动态寻路?
我目前正在做一些寻路研究,仿真如下:我有一个3D场景,表示了起点和终点,我能够创建导航网格物体,航路点和多边形来辅助寻路。 我已经尝试过A *算法及其一些变体,它们可以完美地工作。但是,现在我对“动态”寻路更感兴趣。例如,在查找从A点到B点的路径时,如果突然出现新障碍,我希望我的算法能够立即重新规划路径,而不必再次从头开始搜索。 我已经对D *算法做了一些阅读,并且想知道这是否适合我的需求,或者这看起来像是一个过大的杀手。 所以我的问题基本上是:哪种算法最适合实时动态寻路?或者我可以使用哪些技术组合呢?


7
Perlin噪音造成的世界中的产卵单位?
我在Perlin基于噪音的游戏中遇到了一些问题。请看下面的截图。 您看到的白色区域是墙壁,黑色区域是可步行的。中间的三角形是玩家。 我已经在游戏中实现了物理学,方法是将其绘制到纹理(白色或黑色像素)上,然后从CPU中获取。 但是,现在我面临另一个问题。我希望单位(或小兵,无论您叫什么)在屏幕边缘不断生成。这里的要点是,在最终游戏中,将会出现“战争迷雾”,无论如何玩家都无法看到它。 我认为我可以只扫描屏幕边缘的像素,看看它们的物理纹理是否为黑色,然后在其中随机生成东西。但是,如果您再看一下屏幕截图,则(在左上角)有一个我不想让小兵产生的示例(因为它们无法从那里到达玩家) 。 GPU是否可以以某种方式为我确定这些生成点,或者以其他方式确定?我考虑过要在屏幕边缘的建议点和播放器之间制作矢量,然后每10个体素跟随一次矢量,看一面墙是否发生碰撞,然后在此处生成一个单元。 但是,上面提出的解决方案可能会占用过多CPU资源。 关于这个问题有什么建议吗? 注意1 对于生成的单位,我不希望使用任何形式的寻路以避免墙碰撞,因为这些单位朝向玩家。因此,这些单位必须在屏幕的边缘生成,并且该位置必须朝向玩家的直线走,而不会碰到任何墙壁。
16 xna  path-finding  hlsl  gpgpu 

2
部分可观察的游戏地图-A *是否合适?
我对游戏开发知之甚少,我正在努力寻找寻路算法。 考虑以下设置:代理位于2D地图上,必须找到通向全局已知对象的最短路径,但仅具有有关其本地视野范围内的障碍物的信息(即,仅已知直接障碍物,地图的总体布局未知) )。 而且,每次移动到相邻的正方形都是昂贵的,并且寻路算法应将移动的数量减至最少。 计算效率也非常重要,比准确性更重要。 A *是否适合此用例?

1
在不平坦的行星表面上寻路
我的问题是在不平坦的行星表面上寻路的最佳方法是什么? 背景资料 我通过位移映射6个球面投影平面创建了一个行星。这些平面在投影为球形之前先形成一个立方体。 我想知道是否可以将每个“球面投影的立方体面”用作网格并使用简单的A *算法来找到最佳的可能路线,我也希望考虑位移高度,以便该路径避免爬升山脉等(我想这只是A *算法中的一种启发法)。另一个考虑因素是,我通过利用Unity3d的物理引擎实现了行星运动,将重力应用于行星中心。我提出的解决方案是否需要对重力运动进行独立控制。 为了更好地阐明我的问题,这是我目前的行星体:

6
使AI彼此走不同的路
我有一个自上而下的2d游戏,其中AI在地图的边缘生成,并向中心移动。 我正在使用A *和节点网格进行寻路。 现在,AI会在地图边缘的某个点生成,并且都采用相同的路径,这是到达中心的最短路径。 现在,我希望它们变得更加令人惊讶和有趣,并且彼此走不同的路。 我可以立即想到两个实现此目的的想法,但想知道人们是否经常使用其他方法或更好的方法? 当一个敌人生成并生成一条通往中心的路径时,暂时增加该路径上所有节点的成本,然后随着时间的推移逐渐降低它们的成本。然后,稍后产生的敌人AI将被迫走更宽的道路。 上面的方法将导致AI走上越来越宽的道路,而且仍然非常可预测。因此,我想我还将在地图周围引入许多中间目标节点。当AI产生时,他们会随机选择一个中间目标,并先到达那里,然后再前往地图中心。将此与上述增加成本的方法结合起来可能看起来不错? 人们发现哪种方法最能使AI改变他们所走的道路,令人信服和令人惊讶?

9
塔防游戏的动态路径算法
我正在做塔防,我需要一个好的路径算法。 我曾经考虑过Dijkstra,但我需要一个可以动态发展的人。删除或添加一条边而无需完全重新计算时,它必须能够自我更新。 如果有帮助,我正在C#中进行编码。

4
战术RPG的A *算法?
我在用C ++编写一个非常糟糕的战术RPG搞乱了。到目前为止,我已经有了一个2D瓦片贴图,并且刚刚使Wikipedia中基于伪代码的A *算法起作用。 但是,真正的战术RPG不仅会在平坦的飞机上找到最佳路径,然后再向那里移动。它们通常具有有限的移动范围,并且必须向上或向下爬。如果您曾经玩过《最终幻想战术》,则这些内容会受到“移动”和“跳跃”统计数据的影响。这是我迷路的地方。如何更改A *算法,以便找到通往目标的最佳路径,但是路径只有这么多图块?我应该如何考虑身高差异并考虑统计数据?我如何实现跨越差距? 如果有帮助,现在我的地图将由Tile对象的Vector表示。每个图块都有指向北,南,东和西图块的指针,如果那里不存在图块,例如沿着地图的边缘或将图块设置为不可通过,则将它们设置为nullptr。

6
如何在路径(坐标列表)上行走时使角色变得流畅?
我有一个带有坐标的列表-从A *算法输出-我想使我的角色旋转顺畅地遵循此路径。 所以我有一个像A的东西,我想得到C 我怎样才能做到这一点 ? 编辑 为了使自己更清楚一点: 我对平滑转弯更感兴趣,因为我已经知道如何从一个节点转到另一个节点。 编辑 许多人认为这很有用(我也是如此),所以我发布了Daniel Shiffman的“代码的本质”的链接,他在其中讨论了许多游戏AI(和物理)问题,例如转向行为http://natureofcode.com/book/chapter- 6个自治代理/#chapter06_section8
15 c#  unity  path-finding 

1
A *导航网格路径查找
因此,我一直在这个名为Greenfoot的框架中制作这款自上而下的2D Java游戏,并且我一直在为您要战斗的家伙开发AI。我希望他们能够现实地环游世界,因此我很快意识到,除其他事项外,我需要某种寻路。 我已经制作了两个A *原型。一个是基于网格的,然后我制作了一个与航路点一起使用的栅格,因此现在我需要找到一种方法,从障碍物/建筑物的二维“图”获取可以作为路径的节点图。实际的寻路似乎很好,只是我的打开和关闭列表可以使用更有效的数据结构,但是如果需要的话,我会解决的。 我打算出于所有原因在ai-blog.net上使用导航网格。但是,我面临的问题是,A *认为从多边形中心/边开始的最短路径不一定是通过节点的任何部分的最短路径。为了获得更好的主意,您可以查看我在stackoverflow上提出的问题。 关于可见度图,我得到了很好的答案。从那以后,我已经购买了《计算几何:算法和应用程序》这本书,并进一步阅读了该主题,但是我仍然偏爱导航网格物体(请参阅Amit关于路径查找的注释中的 “ 管理复杂性 ” )。(作为附带说明,如果第一个和最后一个不被遮挡,也许我可以使用Theta *将多个航路点转换为一条直线。或者每次我移回最后一个航路点之前,查看是否可以从这个) 因此,基本上我想要的是一个导航网格物体,一旦将其通过漏斗算法(例如,来自Digesting Duck的那个),我将获得真正的最短路径,而不是仅是从节点到节点的最短路径,但不是实际的最短距离,因为您可以穿过一些多边形并跳过节点/边。 哦,我也想知道您建议如何存储有关多边形的信息。对于航路点原型示例,我只是将每个节点作为一个对象,并存储了可以从该节点访问的所有其他节点的列表,我想这对多边形不起作用吗?以及如何判断多边形是可打开/可穿越的还是实心的?如何存储组成多边形的节点? 最后,作为记录:即使确实已有其他解决方案,我也希望自己从头开始编写此程序,并且我不打算在此游戏以外的任何其他程序中使用此代码,所以这无关紧要它将不可避免地是劣质的。


3
在六角形网格上找到最短路径
我正在写一个带有一些模拟元素的回合制游戏。我目前挂着的一项任务是寻找路径。我想做的是利用AI当前的x,y和目标x,y将AI冒险者每转一圈,使其离目标越来越近。 在自己弄清楚这个问题的过程中,我可以确定使用4个方向没问题 dx = currentX - targetY dy = currentY - targetY 但我不确定如何确定6个方向中的哪个实际上是“最佳”或“最短”路线。 例如,按照当前的设置方式,我使用东,西,NE,NW,SE,SW,但要转到NE磁贴,我先向东移动然后向西北移动,而不是仅向西北移动。 我希望这不是全部。即使只是一两个链接就可以让我入门也很好。我发现的大多数信息都是关于绘制网格并增加所需的怪异坐标系。

2
如何在3D RTS中实现组队形?
我设法为单个单位找到寻路工作,并设法避免了座席与座席发生冲突,但是现在我需要能够将一组座席发送到某个位置。 到目前为止,这是我的设置: 航点寻路 两个节点之间的最小距离略大于代理所允许的最大边界球半径。 代理通过基于clearpath进行一些转向行为来避免与其他代理发生冲突 因此,现在我需要将代理发送到组中的某个位置。我读过一些帖子说,做某件事的某种方法是创建一个小组组长,并让其他部门抵消其职位。 但是问题是,如果无法实现组建怎么办?例如,您想形成一个矩形,但是在目标位置附近有一个结构,使您无法创建矩形设置。
14 path-finding  rts 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.