[发明专利]基于瓦片地图的单位移动方法、装置及可读存储介质有效
申请号: | 202111133622.8 | 申请日: | 2021-09-27 |
公开(公告)号: | CN113577772B | 公开(公告)日: | 2022-01-11 |
发明(设计)人: | 浣剑雄;汪平 | 申请(专利权)人: | 深圳易帆互动科技有限公司 |
主分类号: | A63F13/56 | 分类号: | A63F13/56;A63F13/577 |
代理公司: | 深圳市汉瑞知识产权代理事务所(普通合伙) 44766 | 代理人: | 李航 |
地址: | 518000 广东省深圳市南山区粤海街道高*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 瓦片 地图 单位 移动 方法 装置 可读 存储 介质 | ||
1.一种基于瓦片地图的单位移动方法,其特征在于,包括步骤:
S10:将地图光栅化为瓦片地图,并标记每个格子是否可以通行;
S20:当单位在地图上移动时,通过直线光栅化算法计算出移动路径上第一个碰撞到的碰撞点坐标;每一格子的左下角的坐标代表此格子坐标,单元的原点为P0(X0, Y0),预想的终点为Pn(Xn, Yn),自P0(X0, Y0)到Pn(Xn, Yn)画一条直线,X、Y分别代表水平及垂直坐标;
在Xn-X0 Yn-Y0时,直线的斜率K=(Yn-Y0)/(Xn-X0),且K的值处于0到1之间;
设D为K的累加值,有Di=+K;直线上任意一点Pi坐标为(Xi,Yi);
第一个碰撞到的碰撞点Pt(Xt, Yt)则有:当Di大于等于1时, Xt = Xi -(Di - 1)/K,Yt=Yi;
当Di小于1时,Xt= Xi,Yt=Yi+Di;
当Xn-X0≤Yn-Y0时:直线的斜率K=(Xn-X0)/(Yn-Y0),且K的值处于0和1之间;
设D为K的累加值,有Di=+K;直线上任意一点Pi坐标为(Xi,Yi);
第一个碰撞到的碰撞点Pt(Xt, Yt)则有:当Di大于等于1时, Xi =+ 1;
当Di大于等于1时, Yt = Yi -(Di - 1)/K, Xt=Xi;
当Di小于1时,Yt = Yi,Xt = Xi + Di;
S30:获取碰撞点坐标周边的点是否可以通行,由此计算出单元所碰撞到的斜边的方向;在Xn-X0Yn-Y0的情况下,如(Xt-1,Yt+1)或(Xt-1,Yt-1)中有且仅有一个点为不可通行时,说明存在斜边;
坐标为(Xt-1,Yt+1)为不可通行时,斜边的法线方向为:N(-/2,-/2);否则斜边的法线方向为:N(-/2,/2);
S40:单元贴合该斜边进行移动:根据碰撞点坐标、斜边的方向及预想的终点坐标计算出单元实际到的终点坐标,设斜边所对的顶点为锚点Pivot(Px,Py),Pn到Pivot的向量为V(Vx,Vy)Pn到斜边的向量为Vd(D,D);
当斜边法线方向为N(-/2,-/2)时,有Pivot=(Xn+0.5,Yn+0.5);
当斜边法线方向为N(-/2,/2)时,有Pivot=(Xn-0.5,Yn+0.5);
设格子边长为1,则有Abs(Vx) + Abs(Vy)+Abs(D)=1,Pn到斜边的向量为:
Vd=(-Abs(D)/2,-Abs(D)/2)=(-(1-Abs(Vx)-Abs(Vy))/2,-(1-Abs(Vx)- Abs(Vy))/2);单元实际到的终点坐标为:Pn+Vd。
2.根据权利要求1所述的基于瓦片地图的单位移动方法,其特征在于,碰撞到第一个碰撞点Pt(Xt, Yt)后;当直线路径与Y轴方向上的边碰撞,则碰撞后移动方向为Dir(0, ±1),Dir的Y值的符号与(Yn-Y0)相同;当直线路径与X轴方向上的边碰撞时,则碰撞后移动方向为Dir(±1, 0),Dir的X值符号与(Xn-X0)相同。
3.根据权利要求1所述的基于瓦片地图的单位移动方法,其特征在于,当P0(X0, Y0)点的坐标不与格子的顶点重合时,将P0点延伸至与所在格子的Y轴相交,且赋予D一个初始值a,a=Y0-(X0-1)/K。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳易帆互动科技有限公司,未经深圳易帆互动科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111133622.8/1.html,转载请声明来源钻瓜专利网。