使用圖塊地圖

也參考

本頁面假設你已經建立或下載了一個圖塊集。如果沒有,請先閱讀 使用圖塊集,因為建立圖塊地圖需要一個圖塊集。

前言

圖塊地圖 (TileMap) 是一組用來建立遊戲畫面的圖塊 (Tile) 網格。使用 TileMapLayer 節點來設計關卡有許多的好處。首先,通過圖塊地圖便能通過將圖塊「繪製」到網格上來繪製畫面,比起通過一個一個將 Sprite2D 節點放到畫面上來說快多了。再來,透過圖塊地圖也能製作更大的關卡,因為圖塊地圖有為繪製大量網格進行最佳化。最後,也可以給圖塊加上碰撞、遮擋和導航形狀,為 TileMap 增添更多功能。

在 TileMapLayer 中指定 TileSet

如果你已經進行了上一頁 使用圖塊集 所述的步驟,你現在應該有一個內嵌進 TileMapLayer 節點的圖塊集資源。這有利於原型設計,但在實際專案中,你通常會有多個關卡複用同一個圖塊集。

在多個 TileMapLayer 節點中重複使用相同的 TileSet 的建議方法是將 TileSet 儲存為外部資源。要這樣做,請點擊 TileSet 資源旁邊的下拉式選單,然後選擇**儲存**:

將內建 TileSet 資源保存為外部資源檔

將內建 TileSet 資源保存為外部資源檔

多個 TileMapLayers 和設定

使用圖塊地圖時,建議您在適當情況下使用多個 TileMapLayer 節點。使用多個圖層可以提供優勢,例如,這讓您能夠區分前景圖塊和背景圖塊,以獲得更好的組織。您可以在一個位置的每個圖層放置一個圖塊,這樣如果您有多個圖層,您就可以讓多個圖塊相互重疊。

每個 TileMapLayer 節點都有幾個可以調整的屬性:

  • Enabled: 如果為 true, 目前圖層在編輯器中和運作專案時可見。

  • TileSet TileMapLayer 節點使用的圖塊集。

算繪

  • Y 排序原點: 用於每個圖塊 Y 軸排序的垂直位移(單位:像素)。僅在 CanvasItem 設定下 Y Sort Enabledtrue 時有效。

  • X 繪製順序反轉 反轉圖塊在 X 軸上的繪製順序。需要在 CanvasItem 設定中的 Y 排序啟用 設為 true

  • 算繪象限大小 象限是一組為了最佳化目的在單一 CanvasItem 上一起繪製的圖塊。此設定定義了地圖座標系統中方格邊長。象限大小不適用於 Y 排序的 TileMapLayer,因為在這種情況下,圖塊是按 Y 位置分組的。

物理

  • 碰撞啟用 啟用或停用碰撞。

  • 使用運動學剛體 當為 true 時,TileMapLayer 碰撞形狀將會被實例化為運動學剛體。

  • 碰撞可視模式 TileMapLayer 的碰撞形狀是否可見。如果設定為預設,則取決於碰撞除錯設定的顯示選項。

算繪分層

您可以通過在場景頁籤中拖放節點來重新排序圖層。您也可以使用 TileMap 編輯器右上角的按鈕來切換正在處理的 TileMapLayer 節點。

備註

建立,重命名或對圖層進行排序時不會影響現有圖塊。但是請小心,在“移除”時將會同時移除該圖層上所有的圖塊。

執行編輯器

選擇 TileMapLayer 節點,然後開啟編輯器底部的 TileMap 面板:

在編輯器底部開啟 TileMap 面板。必須先選擇 TileMapLayer 節點。

在編輯器底部開啟 TileMap 面板。必須先選擇 TileMapLayer 節點。

選擇用於繪製的圖塊

首先,如果你在上面建立了其他圖層,確保你已經選擇了要繪製的靶心圖表層:

在 TileMap 編輯器中選擇要繪製的圖層

在 TileMap 編輯器中選擇要繪製的圖層

小訣竅

在 2D 編輯器中,於 TileMap 編輯器內,當前未編輯的同一 TileMapLayer 節點的其他圖層會顯示為灰階。你可以點擊圖層選擇選單旁的圖示(工具提示為**高亮顯示所選 TileMap 圖層**)以停用此行為。

如果沒有建立其他圖層,可以跳過上述步驟,因為進入 TileMap 編輯器時會自動選擇第一個圖層。

在 2D 編輯器中放置圖塊之前,必須在編輯器底部的 TileMap 面板中選擇一個或多個圖塊。為此,請按一下 TileMap 面板中的圖塊,也可以按住滑鼠選擇多個圖塊:

點擊以選中TileMap編輯器中的圖塊

點擊以選中TileMap編輯器中的圖塊

小訣竅

與2D編輯器和TileSet編輯器中一樣,您可以使用滑鼠中鍵或右鍵在TileMap面板上平移,使用滑鼠滾輪或左上角的按鈕進行縮放。

您也可以按住 Shift 來追加到目前選擇。當選擇多個圖塊時,每次執行繪畫操作時都會放置多個圖塊。這可用於透過點擊繪製由多個圖塊組成的結構(例如大型平台或樹木)。

最終選擇不必是連續的:如果所選圖塊之間有空白空間,則在 2D 編輯器中繪製的圖案中它將留空。

在TileMap編輯器中按住滑鼠左鍵可以選擇多個圖塊

在TileMap編輯器中按住滑鼠左鍵可以選擇多個圖塊

如果您在 TileSet 中建立了替代圖塊,則可以選擇它們在基礎圖塊的右側進行繪製:

在 TileMap 編輯器中選擇替代圖塊

在 TileMap 編輯器中選擇替代圖塊

最後,如果您在 TileSet 中建立了 場景集合,則可以將場景圖塊放置在 TileMap 中:

使用 TileMap 編輯器放置包含粒子的場景圖塊

使用 TileMap 編輯器放置包含粒子的場景圖塊

繪製模式和工具

使用 TileMap 編輯器頂部的工具列,您可以在多種繪畫模式和工具之間進行選擇。這些模式會影響在 2D 編輯器中點擊時的操作,而不是 TileMap 面板本身。

在工具列中從左到右:

剪下所選

透過點選單一圖塊來選擇圖塊,或按住滑鼠左鍵在 2D 編輯器中使用矩形選擇多個圖塊。請注意,無法選擇空白區域:如果建立矩形選擇,則只會選擇非空圖塊。

若要追加至目前選擇,請按住 Shift 然後選擇一個圖塊。若要從目前選取中刪除,請按住 Ctrl 然後選擇一個圖塊。

然後可以在任何其他繪畫模式中使用該選擇來快速建立已放置圖案的副本。

您可以按 Del 移除 TileMap 中選定的圖塊。

在繪畫模式下,您可以按住 Ctrl 然後執行選擇來暫時切換此模式。

小訣竅

您可以透過執行選取來複製並貼上已放置的圖塊,按 Ctrl + C,然後按 Ctrl + V。點擊左鍵後將貼上所選內容。您可以再次按 Ctrl + V 以這種方式執行更多副本。右鍵或按 Escape 取消貼上。

繪製圖塊

標準繪畫模式可讓您透過點擊或按住滑鼠左鍵來放置圖塊。

如果右鍵單擊,目前選定的圖塊將從圖塊地圖中刪除。換句話說,它將被空白空間所取代。

如果您在 TileMap 中或使用選擇工具選擇了多個圖塊,則每次您在按住滑鼠左鍵的同時點擊或拖曳滑鼠時都會放置它們。

小訣竅

在「繪畫」模式下,您可以在按住滑鼠左鍵之前按住 Shift 來繪製一條線,然後將滑鼠拖曳到線的終點。這與使用下面描述的直線工具相同。

您也可以按住 CtrlShift 之前 按住滑鼠左鍵,然後將滑鼠拖曳到矩形的端點來繪製矩形。這與使用下面描述的矩形工具相同。

最後,您可以透過按住 Ctrl 然後點擊圖塊(或按住並拖曳滑鼠)來選擇 2D 編輯器中的現有圖塊。這會將目前繪製的圖塊切換為您剛剛點擊的圖塊。這與使用下面描述的選擇器工具相同。

線段

選擇「線條繪製」模式後,您可以繪製始終為 1 格粗的線條(無論其方向為何)。

如果您在「線條繪製」模式下按一下滑鼠右鍵,則會清除一條線條。

如果您在 TileMap 中或使用選取工具選擇了多個圖塊,則可以將它們放置在一條線上的重複圖案中。

在「繪畫」或「橡皮擦」模式下,您可以按住 Shift 鍵然後繪圖來暫時切換此模式。

選擇兩個圖塊後使用線條工具對角繪製平台

選擇兩個圖塊後使用線條工具對角繪製平台

矩形

選擇矩形繪製模式後,您可以繪製軸對齊的矩形。

如果在「矩形繪製」模式下按滑鼠右鍵,則會清除軸對齊的矩形。

如果您在 TileMap 中或使用選取工具選擇了多個圖塊,則可以將它們放置在矩形內的重複圖案中。

您可以在「繪畫」或「橡皮擦」模式下暫時切換此模式,方法是按住 CtrlShift 然後繪圖。

油漆桶填滿

選擇「桶填滿」模式後,您可以透過切換工具列右側顯示的「連續」複選框來選擇是否僅將繪畫限制在連續區域。

如果啟用**連續**(預設設定),則僅取代接觸目前選擇的符合圖塊。這種連續檢查是水平和垂直執行的,但*不是*對角執行。

如果停用**連續**,則整個 TileMap 中具有相同 ID 的所有圖塊都會被目前選定的圖塊取代。如果選擇未選取「連續」的空白圖塊,則包含 TileMap 有效區域的矩形中的所有圖塊都會被取代。

如果您在「桶填滿」模式下按一下滑鼠右鍵,則會將相符的圖塊替換為空圖塊。

如果您在 TileMap 中或使用選取工具選擇了多個圖塊,則可以將它們放置在填滿區域內的重複圖案中。

使用桶填充工具

使用桶填充工具

選取器

選擇選取器模式後,您可以按住 Ctrl 然後按一下圖塊來在 2D 編輯器中選取現有圖塊。這會將目前繪製的圖塊切換為您剛剛點擊的圖塊。您也可以按住滑鼠左鍵並形成一個矩形選取範圍來一次選取多個圖塊。只能挑選非空的磁磚。

在繪畫模式下,您可以按住 Ctrl 然後點擊或拖曳滑鼠來暫時切換此模式。

橡皮擦

此模式可與任何其他繪畫模式(繪畫、線條、矩形、桶填充)結合使用。啟用橡皮擦模式後,左鍵點擊時圖塊將被空圖塊替換,而不是繪製新線。

在任何其他模式下,您可以透過右鍵單擊(而不是左鍵單擊)暫時切換此模式。

使用散射隨機繪製

繪畫時,您可以選擇啟用*隨機化*。啟用後,繪畫時將在所有目前選定的圖塊中隨機選擇一個圖塊。繪畫、線條、矩形和桶填充工具支援此功能。為了實作有效的繪圖隨機化,您必須在 TileMap 編輯器中選擇多個圖塊或使用散射(可以組合使用兩種方法)。

如果**Scattering**設定為大於0的值,則繪製時有可能不會放置圖塊。這可用於為大區域新增偶爾的、非重複的細節(例如在大型自上而下的 TileMap 上新增草或麵包屑)。

使用 4 核心的例子:

多次選擇隨機選擇,然後按住滑鼠左鍵繪畫

多次選擇隨機選擇,然後按住滑鼠左鍵繪畫

使用“桶填充”模式時的範例:

使用帶有單一圖塊的“桶填充”工具,但啟用了隨機化和散射

使用帶有單一圖塊的“桶填充”工具,但啟用了隨機化和散射

備註

橡皮擦模式不考慮隨機化和散射。選擇範圍內的所有圖塊總是會被刪除。

使用圖案保存和加載預製圖塊放置

雖然您可以在選擇模式下複製和貼上圖塊,但您可能想要保存預製的圖塊「圖案」以便立即放置在一起。這可以透過選擇 TileMap 編輯器的 Patterns 分頁在每個 TileMap 的基礎上完成。

若要建立新圖案,請切換到選擇模式,執行選擇並按 Ctrl + C。按一下「圖案」標籤中的空白區域(空白區域周圍應出現藍色焦點矩形),然後按 Ctrl + V

從 TileMap 編輯器中的選擇建立新圖案

從 TileMap 編輯器中的選擇建立新圖案

若要使用現有圖案,請在 Patterns 標籤中按一下其影像,切換至任何繪畫模式,然後左鍵按一下 2D 編輯器中的某處:

使用 TileMap 編輯器放置現有圖案

使用 TileMap 編輯器放置現有圖案

與多圖塊選擇一樣,如果與線條、矩形或桶填充繪畫模式一起使用,圖案將重複。

備註

儘管在 TileMap 編輯器中進行編輯,圖案是儲存在 TileSet 資源中的。這允許在載入儲存到外部檔案的 TileSet 資源後,在不同的 TileMapLayer 節點中重複使用圖案。

使用地形自動處理圖塊連接

要使用地形,TileMapLayer 節點必須至少包含一個地形集以及該地形集中的一個地形。如果您還沒有為 TileSet 建立地形集,請參閱 建立內容

有四種可用於取得設定的巨集:

  • 連接,圖塊與同一 TileMapLayer 上的周圍圖塊相連接。

  • 路徑,圖塊連接到以同一筆劃繪製的圖塊(直到釋放滑鼠按鈕)。

  • 特定於圖塊的覆蓋可解決衝突或處理地形系統未覆蓋的情況。

連接模式更容易使用,但路徑更靈活,因為它允許藝術家在繪畫過程中進行更多控制。例如,Path 可以允許道路直接相鄰而不相互連接,而 Connect 將強制連接兩條道路。

在 TileMap 編輯器的 Terrains 標籤中選擇 Connect 模式

在 TileMap 編輯器的 Terrains 標籤中選擇 Connect 模式

在 TileMap 編輯器的 Terrains 標籤中選擇 Path 模式

在 TileMap 編輯器的 Terrains 標籤中選擇 Path 模式

最後,您可以從地形中選擇特定的圖塊來解決某些情況下的衝突:

在 TileMap 編輯器的 Terrains 標籤中使用特定圖塊進行繪畫

在 TileMap 編輯器的 Terrains 標籤中使用特定圖塊進行繪畫

任何至少有一個位元設定為對應地形 ID 的值的圖塊將出現在可供選擇的圖塊列表中。

翻譯現有頁面

如果您刪除 TileMap 中引用的 TileSet 中的圖塊,TileMap 將顯示一個佔位符以指示放置了無效的圖塊 ID:

由於 TileSet 引用被破壞,TileMap 編輯器中缺少圖塊

由於 TileSet 引用被破壞,TileMap 編輯器中缺少圖塊

這些佔位符在正在運作的專案中**不**可見,但圖塊資料仍保留在磁碟上。這使您可以安全地關閉和重新開啟此類場景。一旦您重新新增具有配對 ID 的圖塊,圖塊就會以新圖塊的外觀出現。

備註

在選擇 TileMapLayer 節點並開啟 TileMap 編輯器之前,遺失的圖塊佔位符可能不可見。