浅谈RMXP自动地图元件的绘制原理
作者:gouki04(啊古) 撰写日期:2011-12-27
博客链接:http://blog.youkuaiyun.com/gouki04
序:最近刚好想写个类似RMXP的地图编辑器,遇到的第一个问题就是自动地图元件的绘制问题。老实说,我不知道这东西到底叫什么(特别是英文叫什么),只知道RMXP翻译过来就是自动地图元件,而且魔兽的地图编辑器也用到这种技术,但我在网上却始终找不到相关的资料。其绘制原理其实很清晰,就是用户给出指定规格的地图元件资源,编辑器将其拆分,在绘制时再根据绘图上下文来进行拼接。但具体的过程以及拆分和拼接原理却很少有人提及,这里我整理了一下。
1.RMXP的自动地图元件规格
首先介绍下RMXP的自动地图元件规格,其中第一格和第二格都是展示用的,并不用在具体的拼接上。话说我也是刚搞懂的。
图1
真正用在拼接的就是剩下的内容,这里先将其按下图拆分开
图2
这里的每一个小格就是最后用于拼接的格子,我们暂且叫它小元件,如图每一个小元件都有一个编号,虽然编号为0,1,2,3,6,7,8的小元件都不会用到,但这样可以方便由编号来进行定位小元件的矩形。
计算编号为i的小元件在图中的矩形的方法为:
size = 16 // 小元件的宽高
row = i / 6 // 小元件所在的行
col = i % 6 // 小元件所在的列
(col * size, row *size, size, size)
2.分析所有拼接情况
在RMXP中,双击自动地图元件,即可以打开自动展开元件的对话框。里面显示的就是所有拼接情况。