2020/5/14
參考資料
文章:老師!我想用Tilemap做元氣騎士款地圖!
文章:用Unity實現(xiàn)元氣騎士地圖的自動生成
視頻:TileMap瓦片地圖簡介暇检,以及它的優(yōu)化原理
視頻:TileMap瓦片地圖的詳細使用方法
小記
今天隨手看了一篇文章 是關于tilemap地圖繪制以及元氣騎士地圖生成
個人認為 tilemap的原理是將渲染圖的單位區(qū)域由1x1擴大到nxn 視頻中用紅白機舉例 原本紅白機分辨率是256x240忌堂,一個像素點有240種顏色可以用1字節(jié)(最多256個顏色)來表示证舟,這樣一來繪制就需要256x240x1=61440字節(jié)=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的區(qū)域概荷,一塊區(qū)域代表一個房間的場景,我們隨機取一塊地區(qū)a作為起點碌燕,然后找到a周圍的4個方向的區(qū)域(靠墻則不計入)误证,從這些區(qū)域中隨機取1~2個作為a區(qū)域的下一間房b1 b2,然后再將其中的一個看成a修壕,循環(huán)此操作愈捅,達到房間上限后,將最后一個房間當做終點慈鸠,這樣就獲得到了一個樹結構蓝谨,從而能夠畫出房間區(qū)域以及對應走廊~