| 
 
| 赞 | 79 |  
| 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开始存  以及中间为何隔开那么多  我就不懂了
 | 
 |