【Godot4筆記】TileMap



?
???????添加TileMap節(jié)點后,右側屬性面板中TileSet中選擇新建,然后選中新建的TileSet,設置好TileSet屬性的x、y的大小,就是地圖塊的大小,編輯器底部會新增TileSet、TileMap兩個選項。

設置地圖塊:
????????選擇TileSet選項,在圖塊中拖入地圖圖片,彈出的提示可以選擇自動創(chuàng)建地圖塊,但是如果地圖塊很多,可能會導致TileSet很卡(編輯器會崩潰)。
????????圖塊列表里選中地圖文件,中間菜單選中“設置”頁簽,可以在右側預覽圖里增刪地圖塊,左鍵點擊添加、右鍵選擇刪除,按住ctrl+左鍵拖動可以多選,按住ctrl+shift+左鍵拖動可以擴展地圖塊。選中中間菜單選中“選擇”頁簽,預覽圖里選中地圖塊后,通過拖動圖塊周圍的兩點,可以向周圍未選擇的地圖塊來擴展地圖塊。

繪制地圖:
????????添加完地圖塊后,選擇底部TileMap選項,進入繪制菜單,同樣選擇圖塊列表中的地圖文件,然后選擇右側預覽圖中的圖塊,在2D界面編輯窗口中繪制地圖。

*畫不出圖片的時候,檢查:
????????1.TileMap選項頂部菜單,不要選中“選擇”選項

????????2. 2D界面編輯窗口中,要選中“選擇模式”

????????3.來回選擇節(jié)點,切換一下,再選中TileMap節(jié)點(有時候編輯完地形也要這樣更新下才能看到)

????????按住shift+左鍵點擊多選地圖塊,選擇TileMap選項頂部菜單中的隨機選項,然后設置離散值,可以在地圖上隨機畫選中的圖塊。
???????? 使用擴展的地圖塊,可以畫出重疊的效果。

????????在TileMap選項頂部菜單中,選中“選擇”,在地圖編輯窗口左鍵點選、左鍵拖選,選中地圖塊,可以移動、刪除選中的地圖塊。
圖案:
????????選中TileMap頂部的“圖案”選項,在地圖編輯窗口,選中地圖塊后,可以直接拖到“圖案”中,選中“圖案”中的選項后,可以選擇隨機屬性,方便直接使用。

地圖塊動畫:
????????地圖塊動畫只能橫向設置,橫向地圖塊是動畫幀,第一張圖設置為可用地圖塊,后面幾張圖未設置成可用地圖塊。

????????TileSet選項中,選中圖塊中“選擇”選項,選中第一幀地圖塊,在菜單中選擇“動畫”,設置列數(shù)(幀數(shù),圖塊數(shù)量),在Frames中按照幀數(shù)添加選項,然后設置每幀時長。

????????在TileMap中,選擇動畫地圖塊繪制。
備選圖塊:
????????TileSet中,右鍵地圖塊,選擇“創(chuàng)建備選地圖塊”,基礎圖塊右側的備選圖塊中會添加新的地圖塊,點擊“+”可以快速添加。

地圖層級:
???????? TileMap節(jié)點屬性中,Layers中添加層級。

碰撞:
???????? 選擇TileMap節(jié)點屬性中,PhysicsLayers中添加元素。
???????? TileSet選項中選擇“繪制”,繪制屬性選擇“物理層0”,在下方繪制碰撞體形狀,再點擊右側地圖塊,將繪制好的碰撞賦予該地圖塊。
???????? 給角色添加Collision節(jié)點后,角色就不能穿過帶有碰撞的地圖塊了。

地形:
???????? TileMap節(jié)點屬性中,TerrainSets中添加元素,Mode屬性選項為地形匹配方式,分別是根據(jù)邊、角、邊和角,在下方“Terrains”中添加元素,設置地形名、顏色。

???????? TileSet中選擇“繪制”,繪制屬性中選擇“地形”,TerrainSet選項,“沒有地形”可以刪除地圖塊設置的地形,選擇“Terrain Set x”,再選擇下方“Terrain”選項來繪制地形。

???????? 選擇地形后,在圖塊中左鍵點選選出需要的地形,右鍵取消選擇,如果地形塊的邊或角會鄰接相同的地圖,就畫上地形。
???????? TileMap選項中選擇“地形”選項,選中要繪制的地形,使用矩形在編輯界面快速繪制地形。

YSort:
???????? 開啟后根據(jù)圖片的YSortOrigin(Y排序原點)來顯示前后順序。TileMap節(jié)點、TileMap節(jié)點的父節(jié)點的Ordering屬性,TileMap節(jié)點的Layers中要設置的地圖層中,勾選“YSortEnabled”,“ZIndex”的值設置成大于1,角色所在節(jié)點的屬性中Ordering-ZIndex的值要與地圖層的值保持一致。




???????? 在TileSet中選擇“繪制”,繪制屬性選擇“Y排序遠點”,修改“YSortOrigin”的值,然后點擊圖塊進行配置。
???????? 玩家角色的碰撞可以設置小些,通過Offset屬性來改變圖片中心的位置。
