设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: 雪在燃
打印 上一主题 下一主题

[胡扯] 哪位大神手里有地图的数据详解?

[复制链接]

Lv5.捕梦者 (版主)

遠航の猫咪

梦石
3
星屑
23186
在线时间
2387 小时
注册时间
2005-10-15
帖子
1166

开拓者

11
发表于 2018-2-1 19:06:20 | 只看该作者
长X宽X6的数组含义如下:
[p, a, c, k, e, d]
p:第一层的图块ID
a:第二层的图块ID
c:第三层的图块ID
k:第四层的图块ID(此处是2086,应该是A1的第1个图块)
e:图块的通行标记,具体为:
  1 下通行不可
  2 左通行不可
  4 右通行不可
  8 左通行不可
  16 优先级
  32 柜台标记
  64 伤害地形
  128 梯子标记
  256-2048 地形标志
  (这条具体记不太清了)
d:区域ID(0-255)

点评

e(第五层)不是通行标记,而是影笔的数据。  发表于 2018-2-2 16:23
256,512,1024,2048应该是什么特定的东西?  发表于 2018-2-1 19:22
SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
6901
在线时间
7028 小时
注册时间
2013-11-2
帖子
1344

开拓者剧作品鉴家

12
发表于 2018-2-2 17:44:21 | 只看该作者
虽然已经私聊向楼主解释了,不过我还是发出来科普一下吧。

VA和MV的地图数据基本上是一样的,只是MV多了一个上层。
获取数组里某个数值的指标的公式是: (z * 高度 + y) * 宽度 + x

MV地图的层数如下(z坐标):
0 - 下层1(A1~5图块)
1 - 下层2(A1或A2图块的草丛等装饰)
2 - 上层1(B~E图块)
3 - 上层2(同上,VA缺了这层)
4 - 影笔
5 - 区域ID




那么各层内的数值代表什么呢?第1~4(Z坐标0~3)层都是一样的。
我们来看MV的rpg_core.js里的定义:

  1. Tilemap.TILE_ID_B      = 0;
  2. Tilemap.TILE_ID_C      = 256;
  3. Tilemap.TILE_ID_D      = 512;
  4. Tilemap.TILE_ID_E      = 768;
  5. Tilemap.TILE_ID_A5     = 1536;
  6. Tilemap.TILE_ID_A1     = 2048;
  7. Tilemap.TILE_ID_A2     = 2816;
  8. Tilemap.TILE_ID_A3     = 4352;
  9. Tilemap.TILE_ID_A4     = 5888;
  10. Tilemap.TILE_ID_MAX    = 8192;
复制代码


从上面的定义里我们可以看到:
B图块是0~255,C图块是256~511,D图块是512~767,E图块是768~1023,A5图块是1536~1663。
这些图块都是非自动的图块,是直接绘制上地图的。理解上应该没什么问题。

A1是2048~2815。其中一共多少个ID呢?答案是768个(包括2048)。
那下一个问题是,A1有多少种图块?水面啊浮萍啊瀑布啊什么的。2排,一排8格,所以一共16种。
768 / 16 = 48。这儿我们可以知道的是,一种图块最多可以占48种差分。
这个公式对A2,A3,A4也适用。

于是3楼提到的2086是啥?我们来算算。
2086位于2048和2815之间,所以是A1类型的图块ID
2086 - 2048 = 38。是A1类型的第39个图块ID。(注:要从0开始算)
38 / 48 = 0 然后 38 % 48 = 38
所以,我们可以知道的是,2086是A1类型的第一种图块第39个差分

如下图所示:(这2年前为了研究地图数据弄的东西…)

噢,原来是这个图块差分啊。真的假的?嘛,那我们进游戏实测一下。我目前没有MV,所以用VA来顶替一下。
各位知道怎么获取一个坐标的图块ID吗?要用脚本?不。事件就够了。


获取坐标0,0第一层的图块ID,放进1号公共变量里。

成果是?


好,那就对了哟。




现在我们知道了,图块ID 2086 是第一种A1图块的第39个差分。那为什么会画出这个形状出来的呢?
我们来看MV里的定义:

  1. Tilemap.FLOOR_AUTOTILE_TABLE = [
  2.     [[2,4],[1,4],[2,3],[1,3]],[[2,0],[1,4],[2,3],[1,3]],
  3.     [[2,4],[3,0],[2,3],[1,3]],[[2,0],[3,0],[2,3],[1,3]],
  4.     [[2,4],[1,4],[2,3],[3,1]],[[2,0],[1,4],[2,3],[3,1]],
  5.     [[2,4],[3,0],[2,3],[3,1]],[[2,0],[3,0],[2,3],[3,1]],
  6.     [[2,4],[1,4],[2,1],[1,3]],[[2,0],[1,4],[2,1],[1,3]],
  7.     [[2,4],[3,0],[2,1],[1,3]],[[2,0],[3,0],[2,1],[1,3]],
  8.     [[2,4],[1,4],[2,1],[3,1]],[[2,0],[1,4],[2,1],[3,1]],
  9.     [[2,4],[3,0],[2,1],[3,1]],[[2,0],[3,0],[2,1],[3,1]],
  10.     [[0,4],[1,4],[0,3],[1,3]],[[0,4],[3,0],[0,3],[1,3]],
  11.     [[0,4],[1,4],[0,3],[3,1]],[[0,4],[3,0],[0,3],[3,1]],
  12.     [[2,2],[1,2],[2,3],[1,3]],[[2,2],[1,2],[2,3],[3,1]],
  13.     [[2,2],[1,2],[2,1],[1,3]],[[2,2],[1,2],[2,1],[3,1]],
  14.     [[2,4],[3,4],[2,3],[3,3]],[[2,4],[3,4],[2,1],[3,3]],
  15.     [[2,0],[3,4],[2,3],[3,3]],[[2,0],[3,4],[2,1],[3,3]],
  16.     [[2,4],[1,4],[2,5],[1,5]],[[2,0],[1,4],[2,5],[1,5]],
  17.     [[2,4],[3,0],[2,5],[1,5]],[[2,0],[3,0],[2,5],[1,5]],
  18.     [[0,4],[3,4],[0,3],[3,3]],[[2,2],[1,2],[2,5],[1,5]],
  19.     [[0,2],[1,2],[0,3],[1,3]],[[0,2],[1,2],[0,3],[3,1]],
  20.     [[2,2],[3,2],[2,3],[3,3]],[[2,2],[3,2],[2,1],[3,3]],
  21.     [[2,4],[3,4],[2,5],[3,5]],[[2,0],[3,4],[2,5],[3,5]],
  22.     [[0,4],[1,4],[0,5],[1,5]],[[0,4],[3,0],[0,5],[1,5]],
  23.     [[0,2],[3,2],[0,3],[3,3]],[[0,2],[1,2],[0,5],[1,5]],
  24.     [[0,4],[3,4],[0,5],[3,5]],[[2,2],[3,2],[2,5],[3,5]],
  25.     [[0,2],[3,2],[0,5],[3,5]],[[0,0],[1,0],[0,1],[1,1]]
  26. ];
复制代码

我去!这么多数字!这个复合数组表里面存着的是地面图块差分的绘制方法。一共有48种,对应48个差分ID。
地面指素材图内原图有2x3格的图块种类。除此之外还有2x2的墙壁(WALL,16个差分)还有2x1(WATERFALL,4个差分)的瀑布类型。

这是A1的第一个图块的素材图(的其中一帧):


自动图块是怎么绘制的呢?首先,这个2x3的素材图需要拆成4x6的半格。


然后,系统会按照表格里指定的区块进行整合。
第39个差分的表格是[[2,4],[3,4],[2,5],[3,5]]


这就是VA/MV的自动图块绘制的原理。




那么编辑器是怎么知道要放这个差分的呀?
答案是检查图块的四周是否有相似的图块,来做出判定。
地面和墙壁的算法是不同的。地面只需要检查周围,但是墙壁要牵涉到整面墙。

评分

参与人数 3+3 收起 理由
fux2 + 1 不如单开一贴或附加到教程贴
雪在燃 + 1 非常强大
御曹司 + 1

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-14 10:57

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表