一种基于Tiledmap的地图数据导出方法
文献发布时间:2023-06-19 11:09:54
技术领域
本发明涉及数据导出技术领域,特别涉及一种基于Tiledmap的地图数据导出方法。
背景技术
现有技术中,制作地图玩法通常需要以下几个步骤:1、美术人员根据策划的需求在tiledmap编辑器中绘制好地图的地形、地图的战斗区、地图的城池区等图像,最后导出一份后缀名为tmx的文件;2、程序人员在此基础上,对地图中的战斗区、城池区、围墙等元素添加对象点,最后导出一份后缀名为tmx的文件;3、程序人员导出的tmx文件会被应用到游戏中,在玩家打开地图界面的时候,会加载该txm文件,然后读取地图中所有的对象点,并将对象点中包含的数据信息转化为JavaScript能够识别的数据。
由于地图的加载是在打开界面的时候进行的,而地图上含有大量的对象点信息,读取这些信息会有一定的耗时,从而导致卡顿;此外,服务器同样需要根据地图上的数据来进行业务的制作,而Erlang并不支持读取和解析tmx文件。
发明内容
为解决上述问题,本发明提供了一种基于Tiledmap的地图数据导出方法。
本发明采用以下技术方案:
一种基于Tiledmap的地图数据导出方法,包括如下步骤:
S1、设置对象点的标签,所述标签由标签名、连接符号及对应的数据组成;
S2、加载tmx文件,并解析每个对象点,形成Tiledmap坐标与各标签的映射关系池;
S3、将所述映射关系池转化为相应的JavaScript代码或Erlang代码,并生成配置文件。
进一步地,所述标签名包括元素类型、系统名、坐标点和业务类型。
进一步地,所述连接符号为下划线、斜线或破折号。
进一步地,所述映射关系池包括元素类型映射池、系统名映射池、坐标点映射池和业务类型映射池。
进一步地,所述元素类型映射池含有Tiledmap坐标到元素类型之间的映射关系。
进一步地,所述系统名映射池含有Tiledmap坐标到系统名之间的映射关系。
进一步地,所述坐标点映射池含有所述Tiledmap坐标到玩家坐标之间的映射关系。
进一步地,所述业务类型映射池含有Tiledmap坐标到业务类型之间的映射关系。
进一步地,所述步骤S2具体如下:
S21、加载tmx文件;
S22、令x=1,读取第x个对象点中的各个标签,并根据连接符号将标签分割成标签名和字符串数组;
S23、对所述字符串数组进行解析,分别形成元素类型映射池、系统名映射池、坐标点映射池和业务类型映射池;
S24、判断当前对象点是否为最后一个对象点,若是,则进行步骤S3,若否,则令x=x+1并重复步骤S22至步骤S24。
采用上述技术方案后,本发明与背景技术相比,具有如下优点:
本发明的方法能够智能分析tmx文件中的所有对象点,并将数据转换为JavaScript和Erlang都能识别的配置文件,在游戏启动时就会被自动加载到内存中,实现在打开界面时无需解析tmx文件,而是直接从内存中读取地图数据,避免了界面的卡顿,且使服务器也可以读取到地图数据。
附图说明
图1为本发明方法的整体流程示意图;
图2为本发明步骤S2的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例
如图1所示,一种基于Tiledmap的地图数据导出方法,包括如下步骤:
S1、设置对象点的标签,所述标签由标签名、连接符号及对应的数据组成;所述标签名包括元素类型、系统名、坐标点和业务类型;所述连接符号为下划线。
所述元素类型用于标记该对象点对应的地图元素是什么类型的,比如城墙、草地等等;所述系统名用于标记该对象点是属于哪个系统的;所述坐标点用于标记该对象点所在的Tilemap坐标;所述业务类型用于标记该对象点是应用于哪个业务的。
S2、加载tmx文件,并解析每个对象点,形成Tiledmap坐标与各标签的映射关系池;
所述映射关系池包括元素类型映射池、系统名映射池、坐标点映射池和业务类型映射池。所述元素类型映射池含有Tiledmap坐标到元素类型之间的映射关系。所述系统名映射池含有Tiledmap坐标到系统名之间的映射关系。所述坐标点映射池含有所述Tiledmap坐标到玩家坐标之间的映射关系。所述业务类型映射池含有Tiledmap坐标到业务类型之间的映射关系。
如图2所示,所述步骤S2具体如下:
S21、加载tmx文件;
S22、令x=1,读取第x个对象点中的各个标签,并根据下划线将标签分割成标签名和字符串数组;
S23、对所述字符串数组进行解析,分别形成元素类型映射池、系统名映射池、坐标点映射池和业务类型映射池;
S24、判断当前对象点是否为最后一个对象点,若是,则进行步骤S3,若否,则令x=x+1并重复步骤S22至步骤S24。
S3、将所述映射关系池转化为相应的JavaScript代码或Erlang代码,并生成配置文件。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
- 一种基于Tiledmap的地图数据导出方法
- 一种基于模板的数据导出方法、装置、介质和设备