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 представляет собой дерево сцен, и что каждая сцена представляет собой дерево узлов. В этом уроке мы расскажем о них немного побольше. Также вы создадите свою первую сцену.

Узлы

Узлы — это фундаментальные строительные блоки вашей игры. Они подобны ингредиентам в рецепте. Существуют десятки их видов, которые могут отображать изображение, воспроизводить звук, представлять камеру и многое другое.

../../_images/nodes_and_scenes_nodes.webp

All nodes have the following characteristics:

  • Имя.

  • Редактируемые свойства.

  • Они получают обратные вызовы для обновления каждого кадра.

  • Вы можете расширить их новыми свойствами и функциями.

  • Вы можете добавить их в другой узел в качестве дочерних.

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-сцен, а также пользовательских интерфейсов. Проект Godot может содержать столько сцен, сколько вам необходимо. Движку же требуется только одна сцена - главная сцена. Это сцена, которую Godot загрузит первой, когда вы или игрок запустите игру.

On top of acting like nodes, scenes have the following characteristics:

  1. Они всегда имеют один корневой узел, как "Персонаж" в нашем примере.

  2. You can save them to your local drive and load them later.

  3. Вы можете создать столько экземпляров сцены, сколько захотите. В вашей игре может быть пять или десять персонажей, созданных на основе сцены "Персонаж".

Создание вашей первой сцены

Let's create our first scene with a single node. To do so, you will need to create a new project first. After opening the project, you should see an empty editor.

../../_images/nodes_and_scenes_01_empty_editor.webp

In an empty scene, the Scene dock on the left shows several options to add a root node quickly. "2D Scene" adds a Node2D node, "3D Scene" adds a Node3D node, and "User Interface" adds a Control node. These presets are here for convenience; they are not mandatory. "Other Node" lets you select any node to be the root node. In an empty scene, "Other Node" is equivalent to pressing the "Add Child Node" button at the top-left of the Scene dock, which usually adds a new node as a child of the currently selected node.

Мы собираемся добавить в нашу сцену узел :ref:`Label <class_Label>`_ . Его функция заключается в отрисовке текста на экране.

Нажмите "Добавить дочерний узел" или "другой узел" для создания корневого узла.

../../_images/nodes_and_scenes_02_scene_dock.webp

Откроется диалоговое окно "Create Node" (Создать узел), в котором отобразится длинный список доступных узлов.

../../_images/nodes_and_scenes_03_create_node_window.webp

Выберите узел Label (Метка). Вы можете ввести его имя, чтобы отфильтровать его по списку.

../../_images/nodes_and_scenes_04_create_label_window.webp

Щелкните на узле Label, чтобы выделить его, и нажмите кнопку Create в нижней части окна.

../../_images/nodes_and_scenes_05_editor_with_label.webp

Многое происходит, когда вы добавляете первый узел сцены. Сцена изменится на 2D-пространство, поскольку Label является 2D-узлом. Label обозначается выбранной в верхнем левом углу окна просмотра. Узел появится во вкладке Scene слева, а свойства узла — во вкладке Inspector справа.

Изменение свойств узла

Следующим шагом будет изменение свойства Label's "Text". Давайте изменим его на "Hello World".

Перейдите на вкладку Inspector (справа от окна просмотра). Щелкните внутри поля под свойством Text и введите "Hello World".

../../_images/nodes_and_scenes_06_label_text.webp

Вы увидите, как текст отрисовывается в окне просмотра по мере ввода.

См.также

Вы можете изменить любое свойство, приведённое в Инспекторе, как мы сделали это с текстом (Text). Исчерпывающую информацию о панели Инспектор смотрите в The Inspector.

Узел Label можно переместить в окне просмотра, выбрав инструмент перемещения на панели инструментов.

../../_images/nodes_and_scenes_07_move_tool.webp

Когда метка выделена, нажмите и перетащите в любом месте области просмотра, чтобы переместить ее в центр ограниченного прямоугольником вида.

../../_images/nodes_and_scenes_08_hello_world_text.webp

Запуск сцены

Все готово для запуска сцены! Нажмите кнопку Play Scene в правом верхнем углу экрана или нажмите F6 (Cmd + R на macOS).

../../_images/nodes_and_scenes_09_play_scene_button.webp

Во всплывающем окне предлагается сохранить сцену, что необходимо для её запуска. Нажмите кнопку сохранения в обозревателе файлов, чтобы сохранить её как label.tscn.

../../_images/nodes_and_scenes_10_save_scene_as.webp

Примечание

Диалоговое окно "Save Scene As" (Сохранить сцену как), как и другие диалоговые окна файлов в редакторе, позволяет сохранять файлы только внутри проекта. Путь res:// в верхней части окна представляет корневой каталог проекта и расшифровывается как "путь к ресурсу". Дополнительные сведения о путях к файлам в Godot см. в разделе Файловая система.

Приложение должно открыться в новом окне и отобразить текст «Hello World».

../../_images/nodes_and_scenes_11_final_result.webp

Закройте окно или нажмите F8 (Cmd + . на macOS), чтобы выйти из запущенной сцены.

Настройка главной сцены

Для запуска нашей тестовой сцены мы использовали кнопку Play Scene. Другая кнопка рядом с ней позволяет установить и запустить главную сцену проекта. Для этого можно нажать F5 (Cmd + B на macOS) .

../../_images/nodes_and_scenes_12_play_button.webp

Появится всплывающее окно, предлагающее выбрать основную сцену.

../../_images/nodes_and_scenes_13_main_scene_popup.webp

Нажмите кнопку Select (Выбрать) и в появившемся диалоговом окне дважды щёлкните файл label.tscn.

../../_images/nodes_and_scenes_14_select_main_scene.webp

Демонстрация должна запуститься снова. В дальнейшем, каждый раз, когда вы запускаете проект, Godot будет использовать эту сцену в качестве отправной точки.

Примечание

The editor saves the main scene's path in a project.godot file in your project's directory. While you can edit this text file directly to change project settings, you can also use the "Project -> Project Settings" window to do so. For more information, see Настройки проекта.

В следующей части мы обсудим еще одну ключевую концепцию в играх и в Godot: создание экземпляров сцены.