[发明专利]基于瓦片地图的单位移动方法、装置及可读存储介质有效
申请号: | 202111133622.8 | 申请日: | 2021-09-27 |
公开(公告)号: | CN113577772B | 公开(公告)日: | 2022-01-11 |
发明(设计)人: | 浣剑雄;汪平 | 申请(专利权)人: | 深圳易帆互动科技有限公司 |
主分类号: | A63F13/56 | 分类号: | A63F13/56;A63F13/577 |
代理公司: | 深圳市汉瑞知识产权代理事务所(普通合伙) 44766 | 代理人: | 李航 |
地址: | 518000 广东省深圳市南山区粤海街道高*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 瓦片 地图 单位 移动 方法 装置 可读 存储 介质 | ||
本发明涉及一种基于瓦片地图的单位移动方法、装置及可读存储介质,方法包括步骤:将地图光栅化为瓦片地图,并标记每个格子是否可以通行;当单位在地图上移动时,计算出移动路径上第一个碰撞到的碰撞点坐标;获取碰撞点坐标周边的点是否可以通行,由此计算出单元所碰撞到的斜边的方向;单元贴合该斜边进行移动:根据碰撞点坐标、斜边的方向及预想的终点坐标计算出单元实际到的终点坐标。本发明提出的方法用于快速计算移动碰撞逻辑的方案,其具备简单、高效的优点,同时也可用于帧同步游戏中。
技术领域
本发明涉及游戏人物控制技术领域,特别是涉及一种基于瓦片地图的单位移动方法、装置及可读存储介质。
背景技术
网络游戏以互联网为传输媒介,以游戏运营商服务器和用户计算机为处理终端,以游戏客户端软件为信息交互窗口的个体性多人在线游戏。在基于Tile Map(瓦片地图)的游戏中处理移动逻辑时,传统做法为将角色固定在格子正中间,每次移动时跳一格的棋盘走法,或者是只能四方向自由移动,碰到阻挡后就停止移动。
游戏中,如果需要做成全方向自由移动,对于碰撞的处理普遍采取使用商业2D物理引擎的方式。对于帧同步游戏,由于各个玩家使用的计算机cpu在运算浮点数有不同的进位策略,故会导致计算不一致的问题,商业化物理引擎无法自己进行定点数改造。因此,在使用帧同步作为网络同步方案的游戏中无法使用物理引擎进行游戏中的角色贴合碰撞边缘平滑移动。如何在帧同步游戏中进行简单、高效的游戏角色平滑移动,是目前亟待解决的一个问题。
发明内容
基于此,有必要针对以上的问题,提供一种基于瓦片地图的单位移动方法、装置及可读存储介质。
本发明提出了一种基于瓦片地图的单位移动方法,包括步骤:
S10:将地图光栅化为瓦片地图,并标记每个格子是否可以通行;
S20:当单位在地图上移动时,计算出移动路径上第一个碰撞到的碰撞点坐标;
S30:获取碰撞点坐标周边的点是否可以通行,由此计算出单元所碰撞到的斜边的方向;
S40:单元贴合该斜边进行移动:根据碰撞点坐标、斜边的方向及预想的终点坐标计算出单元实际到的终点坐标。
其中,当单位在地图上移动时,通过直线光栅化算法计算出移动路径上第一个碰撞到的碰撞点坐标。
其中,步骤S20中,
每一格子的左下角的坐标代表此格子坐标,设单元的原点为P0(X0,Y0),预想的终点为Pn(Xn,Yn),自P0(X0,Y0)到Pn(Xn,Yn)画一条直线,X、Y分别代表水平及垂直坐标;
在Xn-X0Yn-Y0时,直线的斜率K=(Yn-Y0)/(Xn-X0),且K的值处于0和1之间;
设D为K的累加值,有Di=Di-1+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=Di-1+K;直线上任意一点Pi坐标为(Xi,Yi);
第一个碰撞到的碰撞点Pt(Xt,Yt)则有:当Di大于等于1时,Xi=Xi-1+1;
当Di大于等于1时,Yt=Yi-(Di-1)/K,Xt=Xi;
当Di小于1时,Yt=Yi,Xt=Xi+Di。。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳易帆互动科技有限公司,未经深圳易帆互动科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111133622.8/2.html,转载请声明来源钻瓜专利网。