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

Вступ

../../_images/chef.png

Imagine for a second that you are not a game developer anymore. Instead, you’re a chef! Change your hipster outfit for a toque and a double breasted jacket. Now, instead of making games, you create new and delicious recipes for your guests.

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

Making games in Godot feels pretty much the same way. Using the engine feels like being in a kitchen. In this kitchen, nodes are like a refrigerator full of fresh ingredients with which to cook.

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

Вузли

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

  • Він має ім’я.
  • Він має редаговані властивості.
  • It can receive a callback to process every frame.
  • Він може бути розширений (мати більше функцій).
  • Він може бути доданий до іншого вузла в якості нащадка.
../../_images/tree.png

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

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

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

Сцени

../../_images/scene_tree_example.png

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

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

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

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

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

Редактор

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

../../_images/empty_editor.png

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

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

Примітка

У порожній сцені (без кореневого вузла) панель сцена має кілька варіантів для швидкого додавання кореневого вузла до сцени. «Плоска сцена» додає вузол Node2D (Вузол 2D), «Просторова сцена» додає просторовий вузол, «Інтерфейс користувача» додає вузол керування та «Інший вузол», який дозволяє вибрати будь-який вузол (його вибір еквівалентний натисканню «Додати вузол нащадок» «). Ви також можете натиснути піктограму у формі зірки, щоб увімкнути показ вибраних вузлів.

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

Щоб додати вузол Label до цієї сцени, можна натиснути кнопку Інший вузол або кнопку Додати вузол вгорі. У сценах, які не порожні, ви використовуєте кнопку додавання вузла, щоб створити кожен вузол нащадок.

../../_images/newnode_button.png

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

../../_images/node_classes.png

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

../../_images/node_search_label.png

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

../../_images/editor_with_label.png

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

The node appears in the scene tree editor in the Scene dock, and the label properties appear in the Inspector dock.

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

../../_images/hw.png

Ok, everything’s ready to run the scene! Press the PLAY SCENE Button on the top bar (or hit 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.

As a side note, it is also possible to add custom configuration options and read them in at run-time using the ProjectSettings singleton.

Далі буде…

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