Project1

标题: RMVX自动元件纯理论研究 [打印本页]

作者: cheyenne    时间: 2008-6-4 01:19
标题: RMVX自动元件纯理论研究
今天抽风……所以写了这个……
于是声明之:纯理论研究,几乎无实用性,以上。
[LINE]1,#dddddd[/LINE]
那么,首先是算法研究(这东西可以叫算法么--)
RMVX当中的自动元件为TileA1~TileA4,在编辑器当中则表现为A块的前16行
以一个最普通的VX自动元件来说,单个自动元件的大小为64*96,在地图绘制当中,实际上是以16*16为单位参与绘制的

以下是编辑过的TileA2,其中草地图块被我以16*16为单位加上了标记

其中左上角32*32块用甲乙丙丁标注,但是实际上,这一块完全不参与绘制,只起到在地图编辑器当中显示的作用。右上角32*32块用汉字一二三四标注,下方64*64大块用阿拉伯数字1~16标注。
地图编辑器中显示的图块

那么,接下来就用这个图块来画图吧,为了达到“完整”的效果,这里是总共47种自动元件可能表现出的形状,其边角都用黄色标示出:


这么多图块看上去头晕,下面就开始纯文字的分析~
前面说过,自动元件参与地图绘制是以16*16像素为单位的,而实际画出的效果是32*32,其中包含了四个16*16单位,分别是左上、左下、右上、右下。

以左上小块作为例子详细说明,图中的信息表明,左上小块总共有五种可能:1、3、9、11、一,即自动元件图片中参与绘制的每个32*32大块的左上小块
对左上小块有影响的是该图块的左、上、左上三个图块是否是同样的自动元件。其对应关系一定程度上可以参考此文:http://rpg.blue/web/htm/news337.htm,借用此表示方法,我们可以得到:
三块都为1时,取11;仅左上块为0时,取一;上块为0,左块为1时,取3,此时左上块不影响;左块为0,上块为1时,取9,此时左上块不影响;三块都为1时,取1。
同理,左下小块可能取值为5、7、13、15、三,影响其取值的三图块为左、下、左下;右上小块可能取值2、4、10、12、二;右下小块可能取值6、8、14、16、四。

以上即是VX当中自动元件绘制的算法。另外,在使用Shift的时候,绘制的图块为11、10、7、6之拼合,在其周围绘制别的元件令其产生边角的时候,算法如同上面各小块边角产生的描述。
[LINE]1,#dddddd[/LINE]
作者: 光郎    时间: 2008-6-4 01:38
好强大.........看得我晕了……实际效果果然不错。
作者: cheyenne    时间: 2008-6-4 01:48
以下引用光郎于2008-6-3 17:38:48的发言:

好强大.........看得我晕了……实际效果果然不错。

实用性没有,除非有人图块放不下,自动元件又有多余可以用自动元件放普通图块,一个自动元件可以放五个……
作者: cmbljsw    时间: 2008-6-4 23:57
胃猪……捏捏……很强大……
作者: 雪流星    时间: 2008-6-5 09:50
补充一下
甲乙丙丁那块是装饰用的
在自动元件绘制中完全可以忽略

再来,VX的自动元件算法很多
胃的这个算法只是其中之一
例如 TileA1 图块中的瀑布,事实上是左右两块为一组,上下三组为动画祯
而 TileA3 的图块没有内角的算法
等等
胃可以叁考一下这个....想想还是发短信给你好了
作者: cheyenne    时间: 2008-6-6 02:07
以下引用snstar2006于2008-6-5 1:50:36的发言:

补充一下
甲乙丙丁那块是装饰用的
在自动元件绘制中完全可以忽略

再来,VX的自动元件算法很多
胃的这个算法只是其中之一
例如 TileA1 图块中的瀑布,事实上是左右两块为一组,上下三组为动画祯
而 TileA3 的图块没有内角的算法
等等
胃可以叁考一下这个....想想还是发短信给你好了

短信已收到--有官方的说明就好办多了
此外,甲乙丙丁那块的作用我已经说明了,是在编辑器图块选择区中显示用的
我所写的是一般算法,特殊部分可以另外说明……
作者: ′InjuReㄍ、    时间: 2008-6-6 02:38
提示: 作者被禁止或删除 内容自动屏蔽




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