Project1

标题: 关于Map.json里地图块id含义 [打印本页]

作者: 滑稽大帝    时间: 2024-11-27 12:27
标题: 关于Map.json里地图块id含义
本帖最后由 滑稽大帝 于 2024-11-27 12:27 编辑

最近也是看了一下rpgmakermv地图那一块的代码,也是看了大概2天,结合网上的一些提示也是学到一些实用的东西,这里也是记录一下
提示文章的链接:https://cowlevel.net/article/2072343

在上结论前先看个分类吧

应该看得出对应关系吧,名字后面都有对应的

以下是第0层的id说明(data数组下标0~width*height)
----------------------A1~A4---------------------------
那么先看A1-A4类图块id的结论吧,A5跟前面BCDE一桌
(data[index]-TILE_ID_A1)/48=编辑器图块上序号
(data[index]-TILE_ID_A1)%48=图库形状序号

什么意思呢,下面给出
--------------编辑器图块上序号---------------

就这样数就行了
--------------图库形状序号------------------
这个先说明一下形状什么意思,先看个图

应该很明显吧,rpgmakermv根据'图库形状序号'选择一个'形状'
再根据选择的'形状'坐标在右边的图中选择四个24x24大小的'小图块'按照顺序拼成48x48的'大图块'绘制地图
实际上,rpgmakermv列出了上图左边那样的'形状'数组有三个

FLOOR_AUTOTILE_TABLE:可以表示(A1的0,1,2,3序号块以及偶数序号块)、(A2全部)
WATERFALL_AUTOTILE_TABLE:可以表示(A1除去1,3的其他奇数序号块)
WALL_AUTOTILE_TABLE:可以表示(A3全部),(A4全部)

-----------------B~A5-------------------------
直接看看rpgmakermv是怎么计算的吧

这个一类id可以直接得到图块在每张图中的
横向序号:[id/128]%2*8+id%8
纵向序号:[(id%256)/8]%16

我觉得也可以理解为为(id-TILE_ID_XXX)/48得到编辑器图块上序号
再除16得y,模上16得x

上述结论怎么验证也比较容易,我们只需要修改Map.json的数据再打开rpgmakermv,只要能看到一种通过编辑器绘制不出来的图形就行了

也可以试着对这三个数按A1~A4的结论式折拼接





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1