Сцени та вузли

Вступ

../../_images/chef.png

Уявіть на секунду, що ви більше не розробник ігор. Натомість ви шеф-кухар! Змініть ваш наряд хіпстера на кухарський ковпак і двобортну куртку. Тепер, замість того, щоб створювати ігри, ви створюєте нові смачні рецепти для своїх гостей.

Отже, як шеф-кухар створює рецепт? Рецепти поділяються на два розділи: перший - це список інгредієнтів, а другий - інструкція щодо їх приготування. Таким чином, будь-хто може виконуючи інструкції рецепта приготувати страву та посмакувати ваше чудове творіння.

Створення ігор в Godot дуже схоже. Використання редактора дозволяє відчути себе кухарем на кухні. В цій кухні вузли схожі на холодильник повний свіжих інгредієнтів, з яких можна готувати.

Існує багато типів вузлів. Одні показують зображення, інші відтворюють звук, ще інші вузли показують 3D-моделі тощо. Їх є десятки.

Вузли

Але почнемо з основ. Вузли - це основні будівельні блоки для створення гри. Як було сказано вище, вузол може виконувати різноманітні спеціалізовані функції. Однак будь-який вузол завжди має такі атрибути:

  • Він має ім'я.
  • Він має редаговані властивості.
  • Він може викликатися в кожному кадрі.
  • Він може бути розширений (мати більше функцій).
  • Він може бути доданий до іншого вузла в якості нащадка.
../../_images/tree.png

Останнє важливо. Вузли можуть мати інші вузли в якості нащадків. Упорядковані таким чином вузли утворюють дерево.

У Godot, можливість впорядкувати вузли таким чином створює потужний інструмент для організації проектів. Оскільки різні вузли мають різні функції, їх поєднання дозволяє створити більш складні функції.

Не хвилюйтесь, якщо ще не зрозуміли цього. Ми продовжимо вивчати це протягом кількох наступних розділів. Найважливіший факт, про який слід пам'ятати, - це те, що вузли існують і їх можна упорядкувати таким чином.

Сцени

../../_images/scene_tree_example.png

Тепер, коли концепція вузлів визначена, наступним логічним кроком є пояснення, що таке Сцена.

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

  • завжди має тільки один кореневий вузол.
  • може бути збережена на диск і завантажена назад.
  • може бути вставлена (більше про це пізніше).

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

В основному редактор Godot - це редактор сцен. У ньому є безліч інструментів для редагування 2D та 3D сцен, а також інтерфейсів користувача, але редактор заснований на концепції редагування сцени та вузлів, які її складають.

Редактор

Відкрийте проект, який ви зробили в Введення в редактор коду Godot, або створіть новий. Це відкриє редактор Godot:

../../_images/empty_editor.png

Як вже згадувалося раніше, створення ігор в Godot схоже на приготування страв на кухні, тому давайте відкриємо холодильник і додамо до проекту кілька свіжих вузлів. Почнемо з повідомлення "Hello World", яке ми помістимо на екран.

Для цього нам потрібно додати вузол Label (Мітка). Натисніть кнопку "Додати вузол нащадок" у верхньому лівому куті панелі Сцена (піктограма являє собою символ плюс). Ця кнопка є основним способом додавання нових вузлів до сцени, і завжди додаватиме вибраний вузол нащадком до поточного вибраного вузла (або, як "кореневий", в порожній сцені).

Примітка

In an empty scene (without root node), the scene dock shows several options to quickly add a root node to the scene. "2D Scene" adds a Node2D node, "3D Scene" adds a Spatial node, "User Interface" adds a Control node, and "Other Node" which lets you select any node (so it is equivalent to pressing the "Add Child Node" button). You can also press the star-shaped icon to toggle the display of your favorited nodes.

Зауважте, що ці варіанти є тут для зручності і не є обов'язковими для різних типів сцен. Не кожній 3D-сцені потрібен просторовий вузол в якості кореневого, також не кожен графічний інтерфейс, або 2D сцена, потребує вузла управління, або Node2D, в якості кореневого вузла.

Now, to add a label node to this scene you can click on the Other Node button or the Add Node button at the top. In scenes that aren't empty you use the add node button to create every child node.

../../_images/newnode_button.png

Це відкриє діалогове вікно Створити вузол, де буде довгий список вузлів, які можна створити:

../../_images/node_classes.png

Звідти виберіть вузол "Label" (Мітка). Найшвидший спосіб знайти його використати пошуковий рядок:

../../_images/node_search_label.png

І нарешті створіть Мітку! Натисніть кнопку Створити. При цьому багато чого трапиться:

../../_images/editor_with_label.png

Перш за все, сцена змінюється на 2D-редактор (оскільки Label - це тип 2D вузла), а Мітка з'являється, вибрана, у верхньому лівому куті вікна перегляду.

Вузол з’являється в редакторі дерева сцени в панелі Сцена, а властивості мітки з’являються в Інспекторі.

Наступним кроком буде зміна властивості мітки "Text". Давайте змінимо її на "Hello World":

../../_images/hw.png

Гаразд, все готово для запуску сцени! Натисніть кнопку ВІДТВОРИТИ СЦЕНУ на верхній панелі (або натисніть F6):

../../_images/playscene.png

Іііі... Упс.

../../_images/neversaved.png

Сцени потрібно зберігати перед запуском, тому збережіть сцену, наприклад Hello.tscn, у Сцені -> Зберегти:

../../_images/save_scene.png

А тут трапляється щось смішне. Діалогове вікно файлів - це спеціальне діалогове вікно файлу, яке дозволяє зберігати лише всередині проекту. Корінь проекту - res:// це означає "шлях до ресурсу". Це означає, що файли можна зберігати лише всередині проекту. Надалі, виконуючи операції з файлами в Godot, пам'ятайте, що "res://" - це шлях до ресурсів, і незалежно від платформи, чи місця установки, це спосіб знайти, де файли ресурсів знаходяться всередині гри.

Після збереження сцени та повторного її відтворення демонстрація "Hello World" повинна нарешті виконатися:

../../_images/helloworld.png

Успіх!

Примітка

Якщо це не спрацює, і у вас є дисплей hiDPI принаймні на одному з моніторів, перейдіть в Проект → Налаштування проекту → Дисплей → Вікно, а потім увімкніть Дозволити Hidpi під Dpi.

Налаштування проекта

Гаразд, настав час налаштувати проект. Зараз єдиний спосіб запустити щось - це виконати поточну сцену. Однак у проектів може бути кілька сцен, тому одна з них повинна бути встановлена як головна сцена. Це сцена, яка буде завантажуватися при кожному запуску проекта.

Усі ці параметри зберігаються у файлі project.godot, який є простим текстовим файлом у форматі win.ini (для зручного редагування). У цьому файлі ви можете змінити десятки налаштувань, щоб змінити спосіб виконання проекту. Щоб спростити цей процес, Godot надає діалогове вікно налаштувань проекту, яке виступає як своєрідний інтерфейс для редагування файлу project.godot.

Для доступу до цього діалогового вікна виберіть Проект -> Параметри проекту. Спробуйте зараз.

Як тільки відкриється вікно, давайте виберемо головну сцену. Знайдіть властивість Application/Run/Main Scene (Додаток/Запуск/Головна сцена) та натисніть на неї, щоб вибрати 'Hello.tscn'.

../../_images/main_scene.png

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

Діалогове вікно налаштувань проекту надає безліч параметрів, які можна зберегти у файл project.godot та показує їх значення за замовчуванням. Якщо ви змінюєте значення, ліворуч від його імені виникає галочка. Це означає, що властивість буде збережено у файлі project.godot.

Окрім цього, також можна додати спеціальні параметри конфігурації та прочитати їх під час виконання, використовуючи синглтон ProjectSettings.

Далі буде...

Цей урок розповідав про "сцени та вузли", але поки що була лише одна сцена та один вузол! Не хвилюйтеся, наступний урок розширить цю тему ...