Questions tagged «path-finding»

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

2
调整AStar以找到最接近无法到达目的地的位置
我已经用Java实现了AStar,它在有障碍物可以到达所选目的地的区域也可以正常工作。 但是,当目的地不可到达时,计算出的“路径”绝不是最接近的位置(到不可到达的位置),而是某种随机路径。 有没有一种可行的方法可以调整AStar到最接近无法到达目的地的位置的路径?

5
寻路中的态势感知
假设您必须找到穿过地牢的最短路径,其中只有在收集到某些物品(例如,锁着的门和钥匙)之后才打开某些通道。 单词“最短路径”的正常肠道反应显然是A *。但是A *在这种环境下会失败,因为我看到许多定义可靠启发式方法的问题,此外,很有可能必须多次访问一个节点,这在常规A *中也是不可能的,并且使启发式变得更困难。 我想到的只是在寻找一条从地牢开始到末尾的道路,而忽略任何被阻塞的门。找到此路径后,对于每扇阻碍我们前进的门,在到达门之前,都将寻找并遍历一条寻找适当钥匙并返回门的附加路径。将使用完全相同的系统来处理以下情况:打开门所需的钥匙路径再次被另一扇门阻塞,该门需要首先打开。 我在解决方案中看到的一个大问题是,在找到所有路径(包括用于物品获取的路径)之后,代理可能行进的总距离可能不是最小的,因为可能还有其他被挡住的门离目标更远但更容易获得其适当的密钥。在第一次通过时,A *会忽略这些门,而只是简单地忽略了被阻塞的门。 我确定我不是第一个尝试解决此问题的人,并且希望您对此问题有所投入。
11 ai  path-finding 

2
如何计算拦截向量?
给定一个二维空间,一艘友好的太空飞船停滞不前,一个敌人没有以已知的实际位置,速度和方向直接移动到友好的飞船上。 友好的战舰想进入射击场与敌人作战。 实际上,我只是将矢量设置为实际位置的移动船舶,并在每一帧进行重新计算,从而产生某种“圆形”飞行路径。 我想要的是设定一条直直的路径,以达到到达发射距离时敌人(大概)将要到达的位置(假设直到那时敌人不会改变方向)。 作为第一个“简单”的实现,如果我们假设朋友可以立即从0加速到max,就足够了。 首选实现方式将考虑朋友的加速能力,并知道何时由于速度而无法进行拦截。它应该以各种启动速度工作,而不仅是静止不动。如果它甚至考虑制动,则将是一个加分(在给定的宇宙中,以光速进行战斗对能量效率极低)

1
三角剖分A *(TA *)寻路算法
我需要帮助来了解Demyen在他的论文《基于有效三角剖分的寻路》(第76-81页)中描述的Triangle A *(TA *)算法。 他描述了如何使常规A *算法适用于三角剖分,甚至在到达/扩展最终节点之后也可以搜索其他可能更理想的路径。当最终节点展开时,常规A *停止,但是在三角图中使用时,这并不总是最佳路径。这正是我遇到的问题。 第78页的图5.4中说明了此问题: 我了解如何计算论文中介绍的g和h值(第80页)。 而且我认为搜索停止条件是: if (currentNode.fCost > shortestDistanceFound) { // stop break; } 其中,currentNode是从打开列表(优先级队列)中弹出的搜索节点,其f得分最低。shortestDistanceFound是到目前为止找到的最短路径的实际距离。 但是,如何从以后的搜索中排除以前找到的路径?因为如果再次进行搜索,显然会找到相同的路径。我是否要重置已关闭的列表?我需要修改某些内容,但是我不知道需要更改什么。该论文缺少伪代码,因此会有所帮助。

2
我可以使用哪种转向行为或逻辑来使手机包围其他设备?
我在游戏中使用寻路功能,将暴徒引向其他玩家(以追赶他们)。这样可以使它们超越播放器,但我希望它们在到达目的地之前稍稍停下来(因此,选择倒数第二个节点效果很好)。 但是,当多个暴徒在追赶手机时,它们有时会“堆叠在彼此之上”。避免这种情况的最佳方法是什么?我不想将这些小怪当作不透明和被遮挡的对象(因为它们不是,您可以穿过它们),但我希望这些小怪具有某种结构感。 例: 想象一下,每条蛇都将自己引向我,并且应该包围“ Setsuna”。请注意,两条蛇都选择了叉我吗?这不是严格的要求;即使稍微偏移也可以。但是他们应该“包围” Setsuna。

3
在二维平铺游戏中寻找实体的可能移动
我在为此提出一个特定的搜索词时遇到了问题,但是如何在基于2D回合的策略游戏(即FF:战术,火焰纹章,进阶战争)中寻找可能的动作。 在这一点上,我没有太多考虑地形(甚至碰撞)的问题。我只是想知道我可以使用哪种算法来找出X实体可以移动5个图块并比其攻击2个更远的图块。 我知道我可以使用Dijkstra之类的东西来找到两点之间的距离。一种可能的实现方式是从玩家位置开始,然后从那里分支,直到Dijkstra返回的距离大于移动次数。 只是想知道是否有人可以指出我正确的方向(即算法名称,技术,文章等)。

2
2D寻路-查找平滑路径
我试图实现一个简单的寻路,但是结果不如我想要实现的令人满意。问题是像《星际争霸2》这样的游戏中的单位向所有方向移动,而在我的情况下,单位最多只能向8个方向(《魔兽争霸1》风格)移动,因为这8个方向直接指向下一个可用节点(它们从一个图块移动到下一个相邻图块) 。为了达到《星际争霸2》中的结果,我应该怎么做?缩小瓷砖尺寸? 在图片上,您可以看到水平方向的石头砖是障碍物,并且找到的路径标记为绿色砖。红线是我要实现的路径。

3
如何找到障碍?
如何最好地表示以下情况-代理(@)需要达到目标($)。该路径被护城河(~~~)阻塞。可以使用耙子(或其他一些设备,如水上行走靴)来越过障碍物。 .....~~~... . ground ...=.~~~... = rake .....~~~.$. ~ water .@...~~~... @ agent .....~~~... $ goal 如果没有立即可用的路径,如何正确地从查找@到$?我的道路是否应该不仅具有成本,还具有先决条件? UPD:问题是目标无法实现,耙只是地图上许多可能的物体之一。那么问题是“如何使代理了解它需要耙子?”
10 ai  path-finding 

2
在类似《魔兽争霸3》的游戏中寻找障碍物
考虑在基于图块的地图上进行A *搜索。直接的代码是:如果该单元格中有一个单元,则该单元不可访问,可以。 但是存在地图分辨率问题。当我研究《魔兽争霸3》时,那里的怪物和建筑物确实具有不同的半径,并且您可以走得很近,这更像是基于矢量的,这是如何实现的? 另外,将移动障碍物碰撞检测与路径查找算法(例如Warcraft 3)结合起来的标准解决方案是什么?

7
我应该如何重新计划A *?
我有一个寻路的老板敌人,它使用A *算法寻找玩家。这是一个非常复杂的环境,我在Flash中进行操作,因此,如果在长距离搜索,搜索可能会变得有点慢。如果播放器静止不动,我只能搜索一次,但此刻我正在搜索每一帧。这花费了足够长的时间,以至于我的帧速率正在遭受痛苦。 通常的解决方案是什么?是否可以在不重新进行整个搜索的情况下“重新计划” A *?我是否应该减少搜索频率(每半秒或第二秒),并接受路径中的一些误差?

5
产生类迷宫的最长路径算法
我有一个由房间组成的基于网格的简单地图,像这样(A =入口,B =出口): 0 1 2 3 ######### 0#B###### ######### 1##### ######### 2### ### 3### ######### 4##### ######### 5 ### A# #### 6 #### ######### 而且我一直努力尝试制定一种合适的算法来在房间之间创建门的路径,这样玩家必须先找到大部分地图,然后才能找到出口。 换句话说,我试图找到从A到B的最长路径。 (我知道可以为非循环图解决此问题;但是,在这种情况下,可能存在循环。) 编辑:另一个示例,其中使用洪水填充来连接房间,而出口被选为距离入口最远的房间: 0 1 2 3 ######### 0#B## ##-##### 1#| ## ##### 2 ##### ###-#-### 3#| ### #-####### 4 #A | # ### …

4
如何使NPC寻路看起来可信?
是否有一种“学术”方式可以使NPC在地图上随机行走,但有可信的表现? 明显的情况是武装警卫在地下室走动以保护其安全。设置“可信”路径非常容易。 实际上,我正在寻找一种模拟小镇上人群的方法。我怎样才能让他们的举动看起来像他们不是无目标的机器人。



4
如何使寻路算法适应受限运动?
想象一下类似汽车的运动,其中实体无法打开一角钱。为了便于讨论,请说在高速行驶时它们可以每秒旋转90度。在许多情况下,这将更改最佳路径,并因此更改寻路。它甚至可能使“常规”路径完全无法遍历。 是否有任何寻路算法或运动计划算法可以牢记这一点,或者是否有简单的方法来适应流行的算法?
10 path-finding  car 

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.