Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

節點與場景

Godot 關鍵概念概述 中,我們看到 Godot 遊戲就是由場景構成的樹狀結構,而每一個場景又是一個由節點構成的樹狀結構。在這一節中,我們將更詳細地解釋這些概念,你還將建立你的第一個場景。

節點

節點是你的遊戲的基本構件 。它們就像食譜裡的食材。Godot 引擎包含很多種節點,可以用來顯示圖像、播放聲音、表示相機等等。

../../_images/nodes_and_scenes_nodes.webp

有下列事項需注意:

  • 名稱。

  • 節點有可編輯的屬性。

  • 節點能接收用來處理每一影格的回呼函式。

  • 可以擴充節點(讓節點有更多功能)。

  • 可以新增節點到另一個節點,變成另一個節點的子節點。

The last characteristic is important. Together, nodes form a tree, which is a powerful feature to organize projects. Since different nodes have different functions, combining them produces more complex behavior. As we saw before, you can build a playable character the camera follows using a CharacterBody2D node, a Sprite2D node, a Camera2D node, and a CollisionShape2D node.

../../_images/nodes_and_scenes_character_nodes.webp

場景

當你在樹中組織節點時,就像我們的角色一樣,我們稱之為場景建構。保存後,場景的工作方式類似於編輯器中的新節點型別,您可以在其中將它們新增為現有節點的子節點。在這種情況下,場景實例顯示為隱藏其內部結構的單個節點。

場景允許你以你想要的方式來建構你的遊戲程式碼。你可以 組合節點 來建立自訂和複雜的節點型別,比如能跑能跳的遊戲角色、生命條、可以互動的箱子等等。

../../_images/nodes_and_scenes_3d_scene_example.png

基本上,Godot 編輯器就是一個 場景編輯器,有著各種能夠編輯 2D 與 3D 場景以及使用者介面的工具。但編輯器基本上就只是用來編輯場景以及編輯構成場景的節點。

有下列事項需注意:

  1. 它們始終有一個根節點,就像我們範例中的“Character”一樣。

  2. 可以新增節點到另一個節點,變成另一個節點的子節點。

  3. 您可以根據需要建立任意數量的場景實例。您的遊戲中可以有五個或十個角色,這些角色是從角色場景中建立的。

建立內容

讓我們只用一個節點來建立我們的第一個場景吧。首先你需要 建立一個新專案 。在打開專案後,你看到的應該是一個空的編輯器。

../../_images/nodes_and_scenes_01_empty_editor.webp

在空白的場景中 (也就是沒有根節點的場景),場景 Dock 會顯示好幾個選項,用來快速新增根節點到場景中。[2D 場景] 可以新增 Node2D 節點,[3D 場景] 可以新增 Spatial 節點,[使用者介面] 會新增 Control 節點,[自定節點] 可以選擇任何一種節點 (就跟點擊「新增子節點」的效果一樣)。也可以點擊星形的圖示來顯示或關閉我的最愛裡的節點。

我們要往場景中新增一個 Label 節點。它的功能是在螢幕上繪製文字。

點擊“新增子節點”按鈕或者“其他節點”,建立根節點。

../../_images/nodes_and_scenes_02_scene_dock.webp

打開新增節點對話框,顯示一串長的可用節點。

../../_images/nodes_and_scenes_03_create_node_window.webp

選擇 Label 節點。您可以輸入這個名字來對列表進行篩選。

../../_images/nodes_and_scenes_04_create_label_window.webp

點擊 Label 節點將其選中,然後點擊視窗底部的「建立」 按鈕。

../../_images/nodes_and_scenes_05_editor_with_label.webp

新增場景中的第一個節點時會發生很多事。場景會切換到 2D 工作區,因為 Label 是 2D 節點型別。該 Label 會以選中的狀態出現在視口的左上角。這個節點也會出現在左側的“場景”面板中,它的屬性會書現在右側的“屬性面板”面板裡。

訊號與屬性

下一步我們要修改標籤的「Text (文字)」屬性。來把它改成「Hello World」。

前往視口右側的“屬性面板”面板。點擊 Text 屬性下方的欄位,然後填入“Hello World”。

../../_images/nodes_and_scenes_06_label_text.webp

在你打字的同時,你會發現視口中也繪製出了這段文字。

也參考

You can edit any property listed in the Inspector as we did with the Text. For a complete reference of the Inspector dock, see 遠端屬性面板。.

選擇工具列上的移動工具,就可以在視口中移動你的 Label 節點。

../../_images/nodes_and_scenes_07_move_tool.webp

選中 Label,點擊並拖拽視口中的任何位置,將它移動到矩形框所表示的視圖中心。

../../_images/nodes_and_scenes_08_hello_world_text.webp

執行遊戲

現在可以執行場景了!點擊上方工具列的 播放場景 按鈕 或是按 F6`(macOS上則是 :kbd:`Cmd + R) 。

../../_images/nodes_and_scenes_09_play_scene_button.webp

A popup invites you to save the scene, which is required to run it. Click the Save button in the file browser to save it as label.tscn.

../../_images/nodes_and_scenes_10_save_scene_as.webp

備註

“場景另存為”對話方塊,和編輯器中的其他檔對話方塊一樣,只允許你將檔保存在專案之中。視窗頂部的 res:// 路徑表示專案的根目錄,表示“resource path”(資源路徑)。Godot 中檔路徑的更多資訊請參閱 檔案系統

程式會打開一個新視窗,顯示“Hello World”字樣。

../../_images/nodes_and_scenes_11_final_result.webp

關閉視窗或按 F8 (在 macOS 上是 Cmd + . )就可以退出正在運作的場景。

設定主要場景

我們運作測試場景用的是“運作場景”按鈕。它旁邊的另一個按鈕可以用來設定並運作專案的主場景。你也可以按 F5 (macOS 上則是 Cmd + B)達到同樣的效果。

../../_images/nodes_and_scenes_12_play_button.webp

出現快顯視窗讓你選擇主場景。

../../_images/nodes_and_scenes_13_main_scene_popup.webp

點擊“選擇”按鈕,出現檔對話方塊,按兩下 label.tscn

../../_images/nodes_and_scenes_14_select_main_scene.webp

演示程式又會開始運作。此後,每次你運作專案,Godot 都會使用該場景作為起點。

備註

編輯器會將主場景的路徑保存到專案目錄的 project.godot 檔案中。你能夠通過編輯這個文字檔來修改專案設定,但你也可以使用“專案 -> 專案設定”視窗來達到同樣的目的。詳細請參閱 專案設定

下一部分中,我們將討論遊戲和 Godot 中的另一個關鍵概念:建立場景的實例。