设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 5032|回复: 15
打印 上一主题 下一主题

[原创发布] 【插件】寻路插件QJ-FindPath【V1.6】

[复制链接]

Lv5.捕梦者

梦石
16
星屑
12060
在线时间
1412 小时
注册时间
2020-3-21
帖子
365

极短23获奖

跳转到指定楼层
1
发表于 2021-12-5 15:05:12 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 仇九 于 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.玩家寻路。
*   玩家点击地图,系统进行自动寻路时是否使用本插件的寻路方法。
* ================================================================

* ================================================================
链接:https://pan.baidu.com/s/18KsVDIgrlynQlLjWqFQVFg?pwd=9999

Lv4.逐梦者

梦石
0
星屑
7089
在线时间
722 小时
注册时间
2021-3-5
帖子
821
2
发表于 2021-12-5 19:28:00 | 只看该作者
支持楼主,比Shaz版主的插件更优
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
953
在线时间
143 小时
注册时间
2008-5-27
帖子
251
3
发表于 2021-12-5 21:32:01 | 只看该作者
支持,好用的
【战斗+庄园经营】不理不理大冒险 DEMO
https://rpg.blue/forum.php?mod=v ... p;page=1#pid2955534
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1112
在线时间
238 小时
注册时间
2019-7-27
帖子
15
4
发表于 2021-12-6 04:40:56 | 只看该作者
好耶 !支持!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
41
在线时间
3 小时
注册时间
2021-11-17
帖子
6
5
发表于 2022-1-9 16:31:43 | 只看该作者
谢谢楼主,很好用,这个脚本对玩家有用吗,可以让玩家朝指定位置移动吗
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
41
在线时间
3 小时
注册时间
2021-11-17
帖子
6
6
发表于 2022-1-11 14:06:05 | 只看该作者
楼主,我这边用的时候出了个问题.
从小尺寸地图进入大尺寸地图的时候,如果大尺寸地图有事件就会报错,没有事件就不会报错,这个要怎么办
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
16
星屑
12060
在线时间
1412 小时
注册时间
2020-3-21
帖子
365

极短23获奖

7
 楼主| 发表于 2022-1-11 16:06:48 | 只看该作者
hhj8889 发表于 2022-1-11 14:06
楼主,我这边用的时候出了个问题.
从小尺寸地图进入大尺寸地图的时候,如果大尺寸地图有事件就会报错,没有事 ...

可以让玩家朝指定位置移动。
我已经更新下载链接了,更新后的新版本(V1.3)便没有这个bug了。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
166
在线时间
17 小时
注册时间
2022-2-2
帖子
14
8
发表于 2022-2-3 23:15:29 | 只看该作者
楼主,支持mz吗?我试了好几个优化的插件了,都不支持

点评

我试了一下,没问题,大部分功能能正常用.  发表于 2022-2-3 23:28
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2932
在线时间
435 小时
注册时间
2014-11-21
帖子
145
9
发表于 2022-3-14 14:59:12 | 只看该作者
试了一下,角色移动不知道为什么人物会莫名其妙的下陷;同时如果目的地无法到达的话会在很近的障碍物直接卡住
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1253
在线时间
125 小时
注册时间
2018-5-28
帖子
45
10
发表于 2023-3-18 17:16:04 | 只看该作者
这个寻路算法似乎不会考虑到地图的地形,只是简单判断图块是否可以通行。作者可否优化一下?@仇九

点评

插件是通过预处理获取地图上全部图块的可通行状态,但是如果考虑到地形,部分图块的部分方向其实是不可通行的,这样就比较复杂了  发表于 2023-3-18 17:20
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 07:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表