December 23, 2018

Сцены и узлы

Введение

Забудьте на минуту, что вы – разработчик видеоигр и вместо этого представьте себя в роли шеф-повара! Скиньте с себя хипстерский фасон и вместо этого наденьте поварской колпак и жакет. Теперь все, что от вас требуется – это создавать новые и вкусные рецепты для ваших гостей.

И так же, как именно шеф-повар создает рецепт? Каждый рецепт разделён на две части: в первой приведён список ингридиентов, а во второй – последовательность их приготовления. Таким образом, каждый имеет возможность приготовить блюдо по созданому рецепту и насладиться вашим великолепным творением.

Создание игр в Godot имеет похожий принцип. Использование движка похоже на работу на кухне. На этой кухне узлы похожи на холодильник, заполненный свежими ингредиентами, из которых можно приготовить блюдо.

Существует множество типов узлов. Некоторые показывают изображения, другие воспроизводят звук, другие узлы отображают 3D-модели и т.д. Их десятки.

Узлы

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

  • У него есть имя.
  • Это его редактируемые свойства.
  • Он может получать обратный вызов для обработки каждого кадра.
  • Он может быть расширен (чтобы иметь больше функций).
  • Он может быть добавлен к другому узлу (ноду) в качестве дочернего.

Еще одно важное замечание. У узлов могут быть другие узлы в качестве дочерних. При расположении таким образом узлы образуют дерево.

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

Не беспокойтесь, если не разобрались в этом. Мы продолжим изучение этого в следующих нескольких разделах. Самое важное что, нужно запомнить на данный момент, это то, что узлы существуют и могут быть организованы таким образом.

Сцены

Теперь, когда концепция узлов определена, следующим логическим шагом является объяснение того, что такое Сцена.

Сцена состоит из группы узлов, организованных иерархически (в виде дерева). Кроме того, сцена:

  • всегда есть только один корневой нод.
  • могут быть сохранены на диск и загружены обратно.
  • могут быть * инстанцированы * (подробнее об этом позже).

Запуск игры означает запуск сцены. Проект может содержать несколько сцен, но для начала игры одна из них должна быть выбрана в качестве главной сцены.

В целом, редактор Godot является редактором сцены. Он имеет множество инструментов для редактирования 2D и 3D-сцен, а также пользовательских интерфейсов, но основан он на концепции редактирования сцены и узлов, которые ее составляют.

Создание нового проекта

Давайте сделаем эти абстрактные понятия более конкретными на примере. Следуя давней традиции в учебниках, мы начнем с проекта «Hello World». Это введет нас в использование редактора.

Если вы запустите исполняемый файл Godot без проекта, появится Менеджер Проектов. Это помогает разработчикам управлять их проектами.

Чтобы создать новый проект, нажмите «Новый проект». Выберите и создайте путь для проекта, укажите его название «Новый проект»:

Редактор

После того, как вы создали «Новый проект», откройте его. Запустится редактор Godot:

Как упоминалось ранее, создание игр в Godot похоже на работу на кухне, поэтому давайте откроем холодильник и добавим свежие ноды в проект. Мы начнем с сообщения «Hello World!», которое поместим на экран.

Для этого нажмите кнопку «Создать узел» (который выглядит как символ плюс):

Откроется диалоговое окно Создания Узла, показывающее длинный список узлов, которые могут быть созданы:

Здесь выберите нод «Label». Найти его через поиск, вероятно самый быстрый способ:

Выберите «Label» и нажмите кнопку «Создать»:

В первую очередь, сцена меняется на 2D-редактор (потому что Label является 2D Узлом) и в верхнем левом углу окна просмотра появляется Ярлык.

Узел «Label» появляется в редакторе узлов сцены (поле в правом верхнем углу), а свойства узла отображаются в «инспекторе» (в нижнем правом углу).

Следующим шагом будет изменение свойства «Text». Изменим его на «Hello, World!»:

Хорошо, сцена готова! Нажмите кнопку «Воспроизвести сцену» справа вверху, над панелью редактора узлов сцены (или нажмите F6):

Ииии… Ой.

Сцены должны быть сохранены перед запуском, поэтому сохраните сцену, например, как Hello.tscn через меню Сцена -> Сохранить:

И вот что забавное происходит. Диалоговое окно файла является специальным диалоговым окном файла, которое позволяет вам сохранить его внутри проекта. Корнем проекта является «res://», что означает «путь ресурса». Это означает, что файлы могут быть сохранены только внутри проекта. На будущее, при выполнении файловых операций в Godot, помните, что «res://» - это путь к ресурсам, и независимо от платформы или места установки, это способ найти файлы ресурсов, которые находятся внутри игры.

После сохранения сцены и повторного ее запуска, демка «Hello, World!» должна, наконец, запуститься:

Успех!

Настройка проекта

Хорошо, пришло время настроить проект. Прямо сейчас, единственный способ запустить что-то - это запустить текущую сцену. Однако, проекты могут иметь несколько сцен, поэтому одна из них должна быть установлена как главная сцена. Именно эта сцена будет загружаться при каждом запуске проекта.

Эти настройки хранятся в файле project.godot, который является текстовым файлом в формате win.ini (для удобства редактирования). Существуют десятки настроек, которые вы можете изменить в этом файле, для изменения способа запуска проекта. Чтобы упростить этот процесс, Godot предоставляет диалог настроек проекта, который действует как своего рода интерфейс для редактирования файла project.godot.

Чтобы открыть это диалоговое окно, выберите меню Проект -> Настройки проекта. Попробуйте прямо сейчас.

Как только откроется окно, давайте выберем главную сцену. Найдите свойство Application/Run/Main Scene (Приложение/Запуск/Главная Сцена) и нажмите на него, чтобы выбрать „Hello.tscn“.

Теперь, после этих изменений, когда вы нажимаете кнопку Воспроизвести (или F5), эта сцена будет запускаться независимо от того, какая сцена активно редактируется в данный момент.

Диалог настроек проекта предоставляет множество параметров, которые могут быть сохранены в файле project.godot, и отображает их значения по умолчанию. Если вы измените значение, появится галочка слева от ее имени. Это означает, что свойство будет сохранено в файле project.godot и запомнено.

В качестве примечания, также можно добавить пользовательские параметры конфигурации и прочитать их во время выполнения, используя одиночку (singleton) ProjectSettings.

Продолжение следует…

В этом уроке рассказывалось о «сценах и узлах», но до сих пор была только одна сцена и один узел! Не волнуйтесь, следующий урок будет шире…


Оригинал (он полностью на русском, но я его перенес сюда для удобства)

Помочь в переводе официальной документации