饭中淹的避难所~~~~~

偶尔来避难的地方~

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  94 随笔 :: 0 文章 :: 257 评论 :: 0 Trackbacks

1- RPG MAKER的自动砖块拼接

在目前比较流行的游戏制作工具RPG MAKER里面,做地图编辑的时候,有一种特殊的砖块,不需要手动拼接,而直接用鼠标绘制,就自动帮你拼好地块。
如下图所示


而这一切是使用下面这张图片来拼接而成的。RPG MAKER把它保存在RGSS\Standard\Graphics\Autotiles里面。



RPG MAKER本身砖块是使用32*32的规格来进行组合的,这张AUTOTILE资源,是3*4排列的32*32的图片。


经过观察发现,上面的图片是使用下面这个图片中的元素按照16*16的大小分割来拼接而成的。
为了验证这个想法,我做了下面这个图片,替换掉RPG MAKER原来这张图片。


再用RPG MAKER察看刚才的地图,变成了这样



从中可以看出,RPG MAKER果然是用16*16的小块来进行分割和拼接。



2- 实现方法

决定一个32*32的图块由哪4个16*16的小图块拼接的关键,是这个图块的周围的同类块的位置和数量。下面介绍一个拼接调色板的方法。

步骤1- 把图块周围的邻接块位置编号,如下图



图中标记了8个BIT,每个BIT表示这个位置上是否有同类块,有就是1,没有就是0。这样,我们就得到了一个0-255的索引。

步骤2- 建立图块拼接调色板

我们针对这个索引,建立一个256元素的表。
在这个256元素的表里面,把每个索引对应的目标块的样子描述一下。
描述一个目标块,需要4个16*16的小块。而表示这个小块,可以使用他们在AUTOTILE图片中的索引。

做完这一步,我们得到了256个4元组。

因为AUTOTILE的图片规格都是一样的,所以,这个调色板可以用在每一种自动拼接的砖块上。


这两个简单的步骤结束后,我们就能够正确的绘制每一个自动拼接的图块了。因为它索引的数据是拼接方法,所以叫它是拼接调色板。






posted on 2008-06-17 14:31 饭中淹 阅读(2627) 评论(3)  编辑 收藏 引用

评论

# re: 2D砖块地图系统中,自动砖块拼接的方法. 2008-06-17 20:04 Hellfire
魔兽争霸的地图,也是采用这种拼接做出来的。  回复  更多评论
  

# re: 2D砖块地图系统中,自动砖块拼接的方法. 2008-06-17 20:08 饭中淹
@Hellfire
还有星际的貌似也是这个方法.

另外,早期的字符表格也是用这种方法来进行自动拼接的。


  回复  更多评论
  

# re: 2D砖块地图系统中,自动砖块拼接的方法. 2011-12-17 19:49 madmanahong
新版本的RMVX貌似和这个实现不太一样了。。。。。
不过原理应该差不多。  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理