一、初步構建游戲地圖
在游戲場景當中添加一個新的子節點:TileMapLayer
這一層稱為瓦片地圖層
根據提示,下一步顯然是添加資源
為TileMapLayer節點添加一個TileSet
將地板添加進來,然后選擇自動分割圖集
自定義時要確保大小合適
讓Godot自動隨機選擇一部分地圖,然后我們再精修
增加純綠草地被選中的概率:
在TileMap當中選擇一塊草地,使用矩形覆蓋地圖,注意調整主角和地圖的層級次序
讓攝像頭隨著主角移動——將攝像頭放到主角的內部跟著主角移動
現在還只有草地,我們再添加一個地面圖
我們選擇草地圖層,然后創建一個副本(ctrl+D),命名為FloorLayer,兩個圖層是獨立的,單獨修改任意一個圖層不會影響別的圖層,但是下面的子圖層在游戲運行時會覆蓋在父圖層上面
然后在Floor圖層下,使用橡皮擦擦除草地圖像,然后取消橡皮擦和篩子,選擇一個地面圖像,使用鉛筆來繪制地面圖層
左鍵繪制,右鍵是取消繪制
二、讓游戲的草坪更加真實
引入Terrain
匹配邊和角:可以匹配更多的細節
★ 最終樣式:(細節還需要再學習一下)
然后進入TileMap來重新繪制地形圖
把邊重新描一下,盡量增加點地面的寬度
這樣效果就好多了:
三、添加障礙物
再添加一個TileMapLayer,取名為ObstacleLayer,并移動到Player的上層去
然后為TileSet添加資源
注意:這次不再自動分割圖集
因為一棵樹需要占用4個方塊,需要手動設置4個方塊作為一個Tile
先在設置里點擊:
然后增加一個tile的大小,4個小Tile組成一個大Tile
運行之后
問題1:角色總是在圖層上面? 》使用Ysorting技術解決
問題2:角色可以之前從樹的正面/側面穿進去 》添加碰撞檢測
問題1解決:Ysorting:
給ObstacleLayer啟用Ysorting
然后將Player放到ObstacleLayer圖層的內部
設置紋理原點的位置?
如果玩家的位置低于紋理原點,將玩家顯示在樹的前面,如果玩家的位置在紋理原點之上,它就被顯示在樹的后面
本例當中我們可以將紋理原點向下調整一些
問題2解決:
添加障礙物的碰撞圖形
由于希望玩家可以在樹后面移動,可以把碰撞圖形添加在樹前面
運行,但是現在玩家像是碰到玻璃墻一樣不自然
為此我們可以調小玩家的碰撞域
添加更多的樹木到我們的游戲當中:
再添加一個障礙物
設置紋理原點
繪制碰撞圖形
在TileMap當中選擇圖案,就可以在地圖當中繪制了
游戲最終效果:
2d4
okok,今天的你就到此為止吧,明天還要接著🐺啊!🎈🎈🧡