依星源码资源网,依星资源网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

【好消息,好消息,好消息】VIP会员可以发表文章赚积分啦 !
查看: 65|回复: 0

传奇2地图读取 (带寻路算法及源码)(delphi源码)

[复制链接] 主动推送

2076

主题

2083

帖子

3214

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3214
发表于 2024-11-3 11:14:28 | 显示全部楼层 |阅读模式
传奇2地图读取 (带寻路算法及源码)(delphi源码)
关于传奇地图的格式网上有很多,就不再多做说明,不了解的也可直接看代码。
显示引擎用的DelphiX,寻路算法已经封装成两个类TPathMap(通用),TLegendMap(传奇2专用)
(**********
  关于TLegendMap(位于PathFind.pas)的用法
  1、FLegendMap:=TLegendMap.Create;
     FLegendMap.LoadMap('mapfile')返回地图数据TMapData
     FLegendMap.SetStartPos(StartX, StartY,PathSpace)
     Path:=FLegendMap.FindPath(StopX, StopY)
  2、FLegendMap:=TLegendMap.Create;
     FLegendMap.LoadMap('mapfile')返回地图数据TMapData
     Path:=FLegendMap.FindPath(StartX,StartY,StopX, StopY,PathSpace)

     其中
     Path为TPath = array of TPoint 为nil时表示不能到达
     第一个值为起点,最后一个值为终点

     PathSpace为离开障碍物多少个象素
**********)

(**********
  关于TPathMap的特点
  1、不需要传递地图数据,节省内存的频繁拷贝
  2、可自定义估价函数,根据自己需要产生不同路径

  关于TPathMap的用法
  1、定义估价函数MovingCost(X, Y, Direction: Integer)
     只需根据自定义的地图格式编写)
  2、FPathMap:=TPathMap.Create;
     FPathMap.MakePathMap(MapHeader.width, MapHeader.height, StartX, StartY,MovingCost);
     Path:=FPathMap.FindPathOnMap( EndX, EndY)
     其中Path为TPath = array of TPoint;

  如果不喜欢在TPathMap外部定义估价函数,可继承TPathMap,将地图数据的读取和估价函数封装成一个类使用。

传奇2地图读取 (带寻路算法及源码)(delphi源码)

传奇2地图读取 (带寻路算法及源码)(delphi源码)



游客,本帖隐藏的内容需要积分高于 2 才可浏览,您当前积分为 0

提取码下载:
文件名称:提取码下载.txt 
下载次数:0  文件大小:16 Bytes  售价:30金钱 [记录]
下载权限: 不限 [购买VIP]   [充值]   [在线充值]   【VIP会员5折;永久VIP免费】
安全检测,请放心下载





相关帖子

扫码关注微信公众号,及时获取最新资源信息!下载附件优惠VIP会员5折;永久VIP免费
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

 
在线客服
点击这里给我发消息 点击这里给我发消息 点击这里给我发消息
售前咨询热线
312337667

微信扫一扫,私享最新原创实用干货

QQ|免责声明|小黑屋|依星资源网 ( 鲁ICP备2021043233号-3 )|网站地图

GMT+8, 2024-11-23 22:14

Powered by Net188.com X3.4

邮箱:312337667@qq.com 客服QQ:312337667(工作时间:9:00~21:00)

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