一种大地图可视区域分帧更新的方法
阅读说明:本技术 一种大地图可视区域分帧更新的方法 (Method for updating visible region of geodetic map in frames ) 是由 张汉东 于 2021-09-16 设计创作,主要内容包括:本发明公开了一种大地图可视区域分帧更新的方法,分若干帧逐步更新所述大地图可视区域,具体包括如下步骤:S1、运行第一帧,对屏幕范围外的地图元素进行回收;S2、运行第二帧,对屏幕范围内该加载的元素进行加载;S3、运行第三帧,对屏幕范围内该回收的元素进行回收;S4、运行第四帧,对屏幕范围内已加载的元素进行业务刷新。本发明采用分帧更新的方法实现大地图可视区域的更新,能有效缓解游戏引擎的压力,避免游戏的卡顿,提升玩家的游戏体验。(The invention discloses a method for updating a visible area of a large map in frames, which gradually updates the visible area of the large map in a plurality of frames, and specifically comprises the following steps: s1, operating the first frame and recycling the map elements outside the screen range; s2, operating a second frame, and loading the loaded elements in the screen range; s3, operating a third frame, and recovering the recovered elements in the screen range; and S4, operating the fourth frame, and refreshing the loaded elements in the screen range. The invention adopts a frame updating method to realize the updating of the visible area of the geodetic map, can effectively relieve the pressure of a game engine, avoids the pause of the game and improves the game experience of players.)
技术领域
本发明涉及计算机技术领域,特别涉及一种大地图可视区域分帧更新的方法。
背景技术
在大地图玩法的中,经常会出现大量玩家对某一区域进行频繁的操作,为了保证实时性,手机端就会不断接收到服务器发送过来的新地图数据,同时玩家频繁的滑动地图之后,由于不同位置的地图对应的数据和画面也是不同的,所以手机端就会不断的进行计算以及画面的刷新。
数据实时更新之后,需要对原始数据进行计算才能得出业务所需的数据,这是第一步;数据计算完之后,需要对屏幕范围内的地图进行画面的刷新,这是第二步。这两步都对游戏引擎造成压力,导致游戏画面卡顿。
发明内容
为解决上述问题,本发明提供了一种大地图可视区域分帧更新的方法。
本发明采用以下技术方案:
一种大地图可视区域分帧更新的方法,分若干帧逐步更新所述大地图可视区域,具体包括如下步骤:
S1、运行第一帧,对屏幕范围外的地图元素进行回收;
S2、运行第二帧,对屏幕范围内该加载的元素进行加载;
S3、运行第三帧,对屏幕范围内该回收的元素进行回收;
S4、运行第四帧,对屏幕范围内已加载的元素进行业务刷新。
进一步地,所述步骤S1包括如下步骤:
S11、计算出屏幕可视区域的地图范围以及可视区域的坐标集B;
S12、遍历加载到地图上的元素,判断该元素是否在所述坐标集B中,若是则保留,若否则回收。
进一步地,所述屏幕可视区域的地图范围以及可视区域的坐标集B的计算方法如下:
S111、获取屏幕的宽度W和高度H;
S112、通过计算地图左下角坐标与屏幕左下角坐标的差值,得出屏幕左下角坐标对应地图中的实际坐标A;
S113、通过所述实际坐标A、屏幕的宽度W和高度H,计算出屏幕可视区域的地图范围以及可视区域的坐标集B。
进一步地,所述步骤S2包括如下步骤:
S21、重新计算地图左下角坐标与屏幕左下角坐标的差值,得出新的屏幕左下角坐标对应地图中的实际坐标C;
S22、通过所述实际坐标C、屏幕的宽度W和高度H,计算出新的屏幕可视区域的地图范围以及可视区域的坐标集D;
S23、对于在所述坐标集D中同时不在所述坐标集B中的坐标所对应的地图元素进行加载。
进一步地,所述步骤S3包括如下步骤:
S31、将所述坐标集B和坐标集D中的坐标两两配对,得到坐标对(bm,dn);
S32、找出bm=dn的坐标对,并根据服务器下发的数据判断bm对应的位置上是否有玩家,若有则在坐标bm的位置上加载相应的地图元素,若无则将坐标bm的位置上的地图元素回收。
进一步地,所述步骤S4具体为:逐个读取所述坐标集D中的坐标,并判断该坐标的位置上是否有地图元素,若是则对该坐标位置上的地图元素进行业务刷新,若否则不作处理。
进一步地,所述屏幕为手机屏幕、平板屏幕或电脑屏幕。
采用上述技术方案后,本发明与背景技术相比,具有如下优点:
本发明通过将数据计算、地图元素资源的移除、地图元素的加载、地图元素的刷新这几个环节放在不同帧中进行处理,有效缓解了游戏引擎的压力,避免游戏的卡顿,提升玩家的游戏体验。
附图说明
图1为本发明的分帧更新方法的流程图;
图2为实施例中的步骤S1的流程图;
图3为实施例中的步骤S2的流程图;
图4为实施例中的步骤S3的流程图;
图5为实施例中的步骤S4的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例
如图1所示,本实施例以手机屏幕为例进行说明,一种大地图可视区域分帧更新的方法,分若干帧逐步更新大地图可视区域,具体包括如下步骤:
S1、运行第一帧,对屏幕范围外的地图元素进行回收;
如图2所示,步骤S1包括如下步骤:
S11、计算出手机屏幕可视区域的地图范围以及可视区域的坐标集B;
S12、遍历加载到地图上的元素,判断该元素是否在坐标集B中,若是则保留,若否则回收。
其中,手机屏幕可视区域的地图范围以及可视区域的坐标集B的计算方法如下:
S111、获取手机屏幕的宽度W和高度H;
S112、通过计算地图左下角坐标与手机屏幕左下角坐标的差值,得出手机屏幕左下角坐标对应地图中的实际坐标A;
S113、通过实际坐标A、屏幕的宽度W和高度H,计算出手机屏幕可视区域的地图范围以及可视区域的坐标集B。
S2、运行第二帧,对屏幕范围内该加载的元素进行加载;
如图3所示,步骤S2包括如下步骤:
S21、重新计算地图左下角坐标与屏幕左下角坐标的差值,得出新的屏幕左下角坐标对应地图中的实际坐标C;此时的坐标C的值与第一帧中的坐标A的值是不一样的,因为玩家会对地图进行滑动;
S22、通过实际坐标C、屏幕的宽度W和高度H,计算出新的屏幕可视区域的地图范围以及可视区域的坐标集D;
S23、对于在坐标集D中同时不在坐标集B中的坐标所对应的地图元素进行加载。
S3、运行第三帧,对屏幕范围内该回收的元素进行回收;
如图4所示,步骤S3包括如下步骤:
S31、将坐标集B和坐标集D中的坐标两两配对,得到坐标对(bm,dn);
S32、找出bm=dn的坐标对,并根据服务器下发的数据判断bm对应的位置上是否有玩家,若有则在坐标bm的位置上加载相应的地图元素,若无则将坐标bm的位置上的地图元素回收。
S4、运行第四帧,对屏幕范围内已加载的元素进行业务刷新。
如图5所示,步骤S4具体为:逐个读取坐标集D中的坐标,并判断该坐标的位置上是否有地图元素,若是则对该坐标位置上的地图元素进行业务刷新,若否则不作处理。例如:当前处于受击状态,那么地图元素就要显示着火的特效。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
- 上一篇:一种医用注射器针头装配设备
- 下一篇:虚拟对象移动方法和装置、可读存储介质、电子设备