Project1
标题:
【插件】寻路插件QJ-FindPath【V1.6】
[打印本页]
作者:
仇九
时间:
2021-12-5 15:05
标题:
【插件】寻路插件QJ-FindPath【V1.6】
本帖最后由 仇九 于 2022-12-28 19:06 编辑
一般来说使用MV原生的寻路算法,寻路半径只有12格。
将寻路半径改大时,改到18+的时候就开始卡顿了。
为了解决这个问题我写了这个脚本。
使用了库:
https://github.com/qiao/PathFinding.js
* ================================================================
* 1.此脚本只有两个可以写在移动路线中的“脚本”中指令。
* (1) this.fpXy(tarX,tarY)
* 向指定点移动一格。
* (2) this.fpChar(characterId)
* 向指令事件/玩家移动一格。
* characterId:写-1时代表玩家,写大于0的数字代表指定事件。写其余数字无效。
* (3) 也可在最后加参数showTrace:
* this.fpXy(tarX,tarY,showTrace)
* this.fpChar(characterId,showTrace)
* showTrace写true时,该事件每进行一次寻路,都会在地图上显示出路径的格子图。方便检查。
* 同时只能有一个事件的寻路的showTrace为true。
* 此图仅用于测试,在正式游戏中建议关闭。
* 2.库一共提供了如下几种寻路算法:
* 0.AStarFinder * (A*算法)
* 1.BestFirstFinder
* 2.BreadthFirstFinder *
* 3.DijkstraFinder *
* 4.IDAStarFinder.js *
* 5.JumpPointFinder * (跳跃点算法)
* 6.BiAStarFinder (双向A*算法)
* 7.BiBestFirstFinder
* 8.BiBreadthFirstFinder *
* 9.BiDijkstraFinder *
* 其中加*的能够确保找到最短路径,前面加Bi的是双向寻路算法。
* 不同的游戏适合不同的算法。
* 3.若无特殊要求,只建议使用第 0 个算法。
* 虽然第0个和MV原本的寻路一样都是A*算法,但是通过预处理和数据再利用,其运算效率比MV
* 原有的寻路要快很多。可以支持比较大的地图和特别复杂地图的寻路。
* 4.此脚本不支持像素移动的寻路,若有此特殊要求请联系我。
* 5.尽管此插件将原有的寻路范围扩展至近百,但仍旧需要考虑效率的影响。
* 地图的复杂度对寻路的效率的影响相对来说小,但是地图的大小对寻路的效率的影响很大。
* 以默认的AStarFinder为例:
* (1)在范例1中的地图中:事件在(0,0)玩家在(10,12),事件追逐玩家。
* 初始寻路路径长度:44
* 第一次寻路(需进行初始化,所需时间长): 范围为0.90~1.00ms 平均0.95ms
* 之后寻路: 范围为0.11~0.21ms 平均0.15ms
* (2)在范例2中的地图中:事件在(0,0)玩家在(99,99),事件追逐玩家。
* 初始寻路路径长度:860
* 前三次寻路(前几次寻路时间不稳定,均取前三次的最大值): 范围为14.00~17.00ms 平均15.17ms
* 之后寻路: 范围为0.94~1.40ms 平均1.07ms
* 注意地图越大,绘制移动轨迹(上方第1点中的showTrace为true时)所消耗的资源越多。
* 若想测试具体耗时或者性能请不要绘制轨迹。
* 地图大小最好小于100*100,但是地图的复杂度可任意设置。
* 6.斜向移动。
* 有些算法默认了必须进行斜向移动,例如JumpPointFinder,即使右方的插件参数中将斜向移动设为false,寻路时
* 事件仍旧会斜向移动。
* 7.玩家寻路。
* 玩家点击地图,系统进行自动寻路时是否使用本插件的寻路方法。
* ================================================================
(, 下载次数: 169)
上传
点击文件名下载附件
* ================================================================
链接:
https://pan.baidu.com/s/18KsVDIgrlynQlLjWqFQVFg?pwd=9999
作者:
RyanYe
时间:
2021-12-5 19:28
支持楼主,比Shaz版主的插件更优
作者:
被遗忘的角落
时间:
2021-12-5 21:32
支持,好用的
作者:
OOO三蛋
时间:
2021-12-6 04:40
好耶 !支持!
作者:
hhj8889
时间:
2022-1-9 16:31
谢谢楼主,很好用,这个脚本对玩家有用吗,可以让玩家朝指定位置移动吗
作者:
hhj8889
时间:
2022-1-11 14:06
楼主,我这边用的时候出了个问题.
从小尺寸地图进入大尺寸地图的时候,如果大尺寸地图有事件就会报错,没有事件就不会报错,这个要怎么办
作者:
仇九
时间:
2022-1-11 16:06
hhj8889 发表于 2022-1-11 14:06
楼主,我这边用的时候出了个问题.
从小尺寸地图进入大尺寸地图的时候,如果大尺寸地图有事件就会报错,没有事 ...
可以让玩家朝指定位置移动。
我已经更新下载链接了,更新后的新版本(V1.3)便没有这个bug了。
作者:
孔德俊
时间:
2022-2-3 23:15
楼主,支持mz吗?我试了好几个优化的插件了,都不支持
作者:
hy2000
时间:
2022-3-14 14:59
试了一下,角色移动不知道为什么人物会莫名其妙的下陷;同时如果目的地无法到达的话会在很近的障碍物直接卡住
作者:
lcx666s
时间:
2023-3-18 17:16
这个寻路算法似乎不会考虑到地图的地形,只是简单判断图块是否可以通行。作者可否优化一下?
@仇九
作者:
testevil
时间:
2023-3-20 07:15
感谢楼主分享!
作者:
RadianceUmbra
时间:
2023-4-19 19:48
实测非常好用捏,感谢。
作者:
是阿浪啊
时间:
2023-4-20 13:05
多谢大佬分享
作者:
Arrose
时间:
2023-7-1 15:36
这个插件有MZ版本吗?
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X5.0