首页
社区
课程
招聘
[已解决] 传奇寻路生成路径后,行进时被怪物挡住,被技能强制位移(抗拒,野蛮),无法按A*生成路径前进,有什么方式来处理,来完成寻路至目的地? 10雪币
发表于: 2024-9-12 11:30 1666

[已解决] 传奇寻路生成路径后,行进时被怪物挡住,被技能强制位移(抗拒,野蛮),无法按A*生成路径前进,有什么方式来处理,来完成寻路至目的地? 10雪币

2024-9-12 11:30
1666

A*生成的路径,仅仅以地图建筑是否通行生成路径,并没有考虑怪物会占据一个 地图可通行的 坐标点,导致人物无法通行。比如:生成路径有Y点,该点由地图障碍物来看,确实可通行,但是该点有怪物占着,人物按既定生成路径行进,经过Y点时,被怪挡住无法通行,怎么处理这种?

人物按生成路径行进,被玩家强制位移(野蛮冲撞,抗拒火环类似技能),此时也无法按既定路线走,怎么处理这种?

人物按生成路径行进,还有可能被怪物,玩家,NPC,宝宝等围住,怎么处理这种?

有没有一种完善的逻辑,来完成 移动至目的地。

从逻辑上论证可行的方案。以传奇为例。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 105
活跃值: (4608)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
插入动态阻挡 重新寻路
2024-9-13 16:03
0
雪    币: 224
活跃值: (707)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
Imxz 插入动态阻挡 重新寻路
你说的  插入动态阻挡  是指 在障碍物数组里标识一下怪物的坐标点不可通行,然后,生成路径就不会经过怪物所在点,绕着怪物走,是这个意思吗
2024-9-13 19:16
0
雪    币: 8
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
得拥抱变化  既定的路线 肯定是无法完美执行的 所以只能不停的重新制定路线
2024-9-14 02:12
0
雪    币: 8
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
WYYZCAYQ 你说的 插入动态阻挡 是指 在障碍物数组里标识一下怪物的坐标点不可通行,然后,生成路径就不会经过怪物所在点,绕着怪物走,是这个意思吗
你这啥脑回路
你肯定是要一个函数 叫做 bool 是否障碍(x,y)
你本来里面只判断障碍物数组里面是否标识为障碍物 
现在你额外加上一个条件 周围遍历里面没有对象的坐标是等于xy的(就是这个坐标上不能站着有怪物)

你得有函数式的编程思维  多去看看面向对象的东西吧
2024-9-14 02:16
0
雪    币: 2363
活跃值: (3912)
能力值: ( LV6,RANK:81 )
在线值:
发帖
回帖
粉丝
6
走几步就重新算一下
2024-9-14 09:54
0
雪    币: 562
活跃值: (4200)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
直接传送
2024-9-14 11:20
0
雪    币: 224
活跃值: (707)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
TheCCXXSS 你这啥脑回路 你肯定是要一个函数 叫做 bool 是否障碍(x,y) 你本来里面只判断障碍物数组里面是否标识为障碍物 现在你额外加上一个条件 周围遍历里面没有对象的坐标是等于xy的(就是这个坐 ...
谢谢帮助!
你大概意思就是:在判断障碍物代码那里进行更改。更改为:该点没有地图障碍物 且 该点没被周围对象占据 ,那么该点可通行。其它情况不可通行。
通过周围对象里,有没有该坐标,来判断该坐标是否被周围对象占据。
当判定移动到下个坐标点失败,就重新生成路径,如果生成成功,路径也必然是绕过当前怪物的路径。如果生成失败,说明人物被围住了,执行 一些突围操作(回程,或者打最近怪,直到能生成通行路径突围)
2024-9-14 19:27
0
游客
登录 | 注册 方可回帖
返回
//