godot 隨機地圖2-tilemap
著色器語言和計算機視覺對地圖生成的操作放在tilemap之后。
因為godot語言并不是c++,指針的使用非常麻煩,那就使用傳統(tǒng)的一頂帽子全部扣下。
如果只用代碼可以更加方便,但是為了閱讀直觀,我還是在node下面instances需要使用的class。
pre:
????對昨天的結構進行修改

????對代碼進行修改

????針對上次需要getdata,但是得到的結果并不是統(tǒng)一的,因為返回的數據是RGBA,這導致125*125 返回的大小大于15,625。為了直接點,現(xiàn)階段不使用getdata,而是直接get_pixel。
????

?一、生成tile
????我大概畫了1小時才搞清楚4.0tilemap的操作,雖然這東西人人都可以獨立發(fā)明一次,在tilemap的func中,并沒有什么奇奇怪怪的操作,


最重要的就是set cell,真的艸了他弄成這樣。

set_cell(0,vec2i(x,y),0,vec2i(0,0))
第一個0是所在的圖層,我命名為01,因為為了方便閱讀,弄成00太艸了。
vec2i(x,y),所在的坐標
第二個0,為basetile的 id,因為現(xiàn)在還有一個tileset
vec2i(0,0),為使用的atlas的卓彪,第一個 綠色的 編號為0,在tileset的cord為(0,0)
具體參考這里
https://youtu.be/ztPbGyQnKPo?t=394
二、完整代碼

運行效果

noise的texture我還是用sprite顯示出來了
下面的黃色,為了調整坐標,簡單弄得
綠色的部分就是生成的tile
三、給tile添加碰撞
1、點擊tileset

出現(xiàn)新的ui,點擊 physics layers


加一個

2、去繪制中畫出碰撞體


全碰撞

這樣就可以了。
總結:godot的有100中獲取tilemap信息的功能,缺只有一種設置tile的功能。這不布局,反正4.0.2的tile操作不是很友好,希望后面更新。但是框架很大哦。還是和期待的。