赞 | 80 |
VIP | 0 |
好人卡 | 0 |
积分 | 49 |
经验 | 0 |
最后登录 | 2022-9-6 |
在线时间 | 425 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 4881
- 在线时间
- 425 小时
- 注册时间
- 2019-10-22
- 帖子
- 666
|
本帖最后由 坏数据 于 2020-2-12 17:06 编辑
揭秘!
经过我的潜心研究 终于解答了楼主的无聊问题
RPG::Tileset是对 【数据库】-> 【图块】里面的定义
具体的F1里面都有写
关键就是这个
- @flags = Table.new(8192)
- @flags[0] = 0x0010
- (2048..2815).each {|i| @flags = 0x000F}
- (4352..8191).each {|i| @flags = 0x000F}
复制代码
这里其实就是实例了一个表格(Table)
表格的相关定义 F1里面也有 : 多维数组的类,Ruby Array 类在处理大量信息时效率很差,因此使用了此类。
8192就是表格的x轴的大小 这里表格只有一维 也就是这个表格最多储存8192个数据
表格的x 对应我们数据库里面看到的图块 我们可以在上面点击 改变每个图块的地形标志(flags)
i指的就是图块ID 这里的代码是初始化了所有图块的flags为0x000F 也就是十进制的15 意义不明
图块上的地形标志 正是储存在这个数组当然 游戏里会读取这个表格 来判断地形
我们知道 图块是分为 A1-A5 以及BCDE 一共5页的
2048 - 2815 里面 一共存在着768个值 这里存放的是A1-A5也就是A页的每一个图块的地形标志 上限是768个图块
4352 - 8191 里面 一共存在着3840个值 这里存放的是BCDE页的每一个图块的地形标志 上限是3840个图块
至于为什么从2048开始存 以及中间为何隔开那么多 我就不懂了 |
|