2020/5/14
参考资料
文章:老师!我想用Tilemap做元气骑士款地图!
文章:用Unity实现元气骑士地图的自动生成
视频:TileMap瓦片地图简介,以及它的优化原理
视频:TileMap瓦片地图的详细使用方法
小记
今天随手看了一篇文章 是关于tilemap地图绘制以及元气骑士地图生成
个人认为 tilemap的原理是将渲染图的单位区域由1x1扩大到nxn 视频中用红白机举例 原本红白机分辨率是256x240,一个像素点有240种颜色可以用1字节(最多256个颜色)来表示,这样一来绘制就需要256x240x1=61440字节=61.44kb,而红白机总共显存就2kb,明显不够用,所以这里使用到了tilemap的原理:铺瓦片!
使用8x8的瓦片铺满 256/8=32,240/8=30,32x30=960,每个瓦片用0~255编号,那么960b就可以表示出一个屏幕的所有内容;一个场景最多使用15种瓦片,15x8x8=960b。这样一来 只需要960+960=1920b就可以显示一个屏幕的内容了,大大的减少了开销,确实刘辟~
另一个视频中演示了unity中的tilemap如何使用,也是非常方便。
关于自动生成地图的算法,用的是一个迭代的思想:首先将地图分为nxn的区域,一块区域代表一个房间的场景,我们随机取一块地区a作为起点,然后找到a周围的4个方向的区域(靠墙则不计入),从这些区域中随机取1~2个作为a区域的下一间房b1 b2,然后再将其中的一个看成a,循环此操作,达到房间上限后,将最后一个房间当做终点,这样就获得到了一个树结构,从而能够画出房间区域以及对应走廊~
网友评论