Godot 4 提供了「地形 (Terrain)」系統,用來自動處理這類圖塊之間的連接。
這能讓你在繪製地圖時,自動使用「正確」的圖塊變體,而不需要手動切換。
地形(Terrains)系統是由 地形集 (Terrain Sets)、地形 (Terrains) 和 圖塊 (Tiles) 所組成的。
- 一個
TileSet可以包含一個或多個 地形集 (Terrain Sets); - 每個 地形集(
Terrain Sets) 可以包含一個或多個 地形 (Terrains); - 而每個 地形(
Terrains) 又可以包含一個或多個 圖塊 (Tiles)。
地形圖塊(Terrain Tile)具有一個 中心位 (Center Bit) 和多個 周圍偵測位 (Peering Bits)。
每個位元 (bit) 都可以被指定為某一種地形(Terrain)。
我們通常把「某個圖塊(Tile)的中心與相鄰位被指定的地形組合」稱為它的 位元遮罩 (bitmask)。
中心位(也就是圖塊本身的地形),代表整個圖塊所屬的地形類型;
而「相鄰位(Peering Bits)」則像拼圖邊緣一樣,決定這個圖塊可以與哪些其他圖塊相鄰拼接。
圖塊的形狀以及所使用的地形模式(Terrain Mode),
會共同決定這個圖塊擁有哪些相鄰位,以及這些相鄰位的外觀與排列方式。
Godot 4 中有三種 Terrain Modes
匹配邊緣模式 (Match Sides)
- 此模式需要圖塊(
Tile)數量為: 16 - 優點:圖塊 (
Til)最容易被設定與使用,- 你可以用它們畫出直線(
straight lines), - 也可以畫出轉角(
turns)與交叉口(intersections), - 或是填滿整塊矩形區域(
filled-in rectangles)。
- 你可以用它們畫出直線(
- 限制:你無法畫出斜向的線條(
diagonal lines)。此外,當你繪製矩形區域(rectangles)時,無法區別「外轉角(Outside corners)」與「內轉角(Inside corners)」。對於許多圖塊(Tiles)來說,美術設計上會要求內轉角的樣子必須與外轉角不同。如果你的情況是這樣,你將無法繪製比「單一矩形」更複雜的形狀。 - 周圍偵測位元 (
Peering Bits):- 在 匹配邊緣模式(
Match Sides)下,會使用圖塊 (Tiles)邊緣的周圍偵測位元 (Peering Bits)。 - 這表示 正方形(Square)和等軸測(Isometric)的圖塊(
Tiles)具有四個周圍偵測位元 (Peering Bits); - 而六邊形的圖塊(
hexagonal tiles)則有六個。 - 每個周圍偵測位元 (
Peering Bits)只會對應到一個鄰近圖塊 (neighboring tile)。位於角落的鄰居則不會被影響。
- 在 匹配邊緣模式(
角對齊模式 (Match Corners)
- 此模式需要圖塊(
Tile)數量為: 16 - 優點:圖塊 (
Tile)最容易被設定與使用,- 你可以用它畫出較複雜的形狀,特別適合用於繪製大面積的陸地(
landscape) 或是洞穴地形(caves)
- 你可以用它畫出較複雜的形狀,特別適合用於繪製大面積的陸地(
- 限制:圖塊 (
Tile)只能以 4 個為一組(2x2 方塊)進行連接。這意味著無法實現細微的細節,也無法繪製寬度僅為單個圖塊 (Tile)的線條。- 注意為了避免錯誤,在此模式下,請使用 Rectangle 工具來繪製,並至少保證要四個 tile 在一起,
- 周圍偵測位元 (
Peering Bits):角對齊模式 (Match Corners)在圖塊 (Tile)的頂角(Corners)上使用周圍偵測位元(Peering bits)- 方形(Square)和等軸測(Isometric)的圖塊(
Tiles): 具有四個周圍偵測位元 (Peering Bits),且每個周圍偵測位元 (Peering Bits)處會有 3 個鄰近圖塊(Tiles)。 - 六角形 (Hexagonal) 圖塊(
Tiles): 擁有 6 個周圍偵測位元 (Peering Bits),但每個周圍偵測位元 (Peering Bits)處只有 2 個鄰近圖塊(Tiles)。
- 方形(Square)和等軸測(Isometric)的圖塊(
角與邊對齊 (Match Corners and Sides)
- 此模式需要圖塊(
Tile)數量為: 47 - 優點:最全能的模式,可以做到另外兩個模式能做到的所有形狀
- 限制:他無法建立對角線(
diagonal lines)且他需要最多的圖塊(Tile)。 - 周圍偵測位元 (
Peering Bits):- 在此模式下,圖塊 (
Tiles)的頂角 (Corners) 與 邊緣 (Edges) 同時使用周圍偵測位元 (Peering Bits)。 - 這表示 正方形(Square)和等軸測(Isometric)的圖塊(
Tiles)具有8個周圍偵測位元 (Peering Bits); - 而六邊形的圖塊(
hexagonal tiles)擁有 12 個。 - 在每個「邊」的部分,每個周圍偵測位元 (
Peering Bits)只會對應到一個鄰近圖塊 (neighboring tile)。 - 在「角」的部分,方形與等距圖塊有 3 個鄰居,六角形圖塊則有 2 個鄰居。所有共享同一個頂角的圖塊 (
Tiles),其該角的周圍偵測位元 (Peering Bits)必須設置為相同的地形。
- 在此模式下,圖塊 (