(Tiled官方文档翻译)第十一节:使用世界(Worlds)(Tiled1.2)

本文档介绍了Tiled1.2中如何使用世界(Worlds)来管理游戏地图,包括如何定义和加载世界、使用模式匹配定位地图以及仅显示相邻地图的设置。通过世界,可以将大地图拆分为多个小地图,降低内存消耗并方便多人协作编辑。此外,还详细阐述了正则表达式在确定地图位置中的应用以及如何优化地图加载策略。
摘要由CSDN通过智能技术生成

十一、使用世界(Worlds)(Tiled1.2)

            有时候,为了让一个游戏让机器更吃得消(更少的内存消耗),会将地图切分成多个地图,同时也更方便多个人同时编辑(避免合并冲突)。定义一个世界可以让世界看起来是在同一个视图中,同时也允许在编辑不同的地图上切换。

在The Mana World中同时显示多个地图
在The Mana World中同时显示多个地图

 

11.1 定义一个世界

        现在既不存在接口在Tiled中定义一个世界,也不能将其进行编辑。世界会被定义在一个.world文件中,这个文件是一个JSON文件,告诉Tiled哪个地图是世界中的一部分。

        这里有一个简单的定义世界的例子,定义了三个地图的全局位置:

三个地图的全局位置

        世界一旦定义好,需要选择菜单栏上“地图”>“载入世界”,多个世界可以被同时加载,当Tiled重启之后,世界也会被重启。

        打开一张地图之后,Tiled会检查这张地图是否是一个加载过的世界中的一部分。如果是这的,那么在同一世界里的其他地图也会被同时加载和展示在打开地图的旁边。你可以点击任意的其他地图进行编辑,在切换文件的同时仍然保持视图在同一位置。

        当地图的文件在磁盘上进行过修改,世界会自动进行重载。

11.2 使用模式匹配

       一个工程中的地图遵守一定的命名规范,允许每个地图的位置由文件名衍生,正则表达式能够用于连接一个倍增器和偏移量。

       以下是一个例子:

模式匹配的例子

 

         正则表达式会匹配根据世界文件去匹配在同一目录下的所有有用的文件。它会捕获两个数字,首先一个是“x”,第二个是“y”。然后会将它们分别乘以multiplierX和multiplierY,最后,offsetX和offsetY会被加上。偏移主要存在允许在上地图上的一系列地图根据相对位置去放置。最后的值便是每个地图上的位置(像素)。

         世界的定义可以使用手动地定义和模式定义。

11.3 只显示直接的相邻地图(Direct Neighbors)

        Tiled比较关注一次性加载每一张地图、图块集和图片,但是有时候世界太大了以致于无法一次性加载完。也可能是没有足够的内存去加载,或者渲染一整张地图太慢了。

        这样的情况下,这里有一个选项去选择仅仅加载当前地图的相邻地图。在JSON对象的最上层添加"onlyShowAdjacentMaps": true

        为了让这个成为可能,不仅仅需要定义每张地图的位置,还需要定义它们的尺寸。对于个别的地图,这个在使用“宽度”和“高度”属性时已经就定义好了。对于模式匹配来说,这个属性是mapWidth 宽度匹配mapHeight高度匹配),这样就会默认地设置了倍乘器。所有的值都是以像素的形式存在。

注:将来,作者可能会修改这个选项去允许相对于当前地图的周围距离内的其他地图的加载。

 

     由于边学边翻译,所以有些知识点理解的不透,翻译不到位,请大家多多指导。

     加油,共勉。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值