Кастумні Node-и(Сцени) - 5 - Практична
Передумови
Скачайте ассети.
Button
Button - структура та використання.
Компонент Button:
Створіть клас Button як об’єкт, що має фізичні властивості (StaticBody2D), який слугує пультом дистанційного керування для інших ігрових об’єктів. Кнопка повинна містити експортовану змінну в редакторі Godot, яка дозволяє дизайнерам рівнів призначити «цільовий об’єкт» — об’єкт, на який впливатиме натискання цієї кнопки.
Щоб забезпечити безпеку типів і гнучкість, визначте інтерфейс (наприклад, IButtonable), який містить метод для активації кнопки. Кнопка повинна перевіряти, чи призначений цільовий об’єкт реалізує цей інтерфейс. Після успішної перевірки взаємодія з кнопкою (через її InteractionArea) повинна викликати метод інтерфейсу на цільовому об’єкті.
Основні пункти:
- Надає експортовану змінну
Nodeдля призначення цільового об’єкта (який повинен реалізувати інтерфейсIButtonable) - Перевірити, чи реалізує цільовий об’єкт необхідний інтерфейс (
IButtonable) - Підключити
InteractionArea, щоб активувати сигнал керування, коли гравець використовує команду взаємодії - Оброблення помилок (наприклад, відсутність призначеного об’єкта або несумісні типи)
Portal
Portal - структура та використання.
Компонент Portal:
Створіть клас Portal, який реалізує інтерфейс IButtonable, що дозволить керувати ним за допомогою кнопок. Кожен екземпляр «Порталу» представляє собою точку телепортації, яку можна незалежно активувати або деактивувати.
Портал повинен зберігати посилання на свою «пару» — інший екземпляр «Порталу», який слугує пунктом призначення. Він повинен відстежувати свій поточний стан (активний/неактивний) і надавати візуальний зворотний зв’язок, змінюючи текстури залежно від цього стану. Коли портал активний, він дозволяє телепортацію; коли неактивний, він повинен забороняти вхід.
Основні пункти:
- Реалізувати інтерфейс кнопки для отримання команд перемикання
- Експортувати поле «Портал» для створення пари з пунктом призначення
- Керувати бінарним станом (активний/неактивний) з відповідною зміною текстури
- Включити власну
InteractionAreaдля прямої взаємодії з гравцем (телепортація) - Синхронізувати зміни стану зі своїм парним порталом (обидва повинні відображати однаковий активний/неактивний статус)
Button та Portal - Взаємодія
Як Button та Portal повинні взаємодіяти.
Кнопка і портал взаємодіють через інтерфейс IButtonable:
- 1
Активація кнопки : коли гравець взаємодіє з кнопкою (що визначаєтьсяInteractionManager), кнопка викликає метод інтерфейсу на призначеному цільовому об’єкті (Portal). - 2
Перемикання стану : якщо цільовий об’єкт єPortal, він перемикає свій активний стан і дає команду своєму парному порталу, щоб той відповідав цьому стану. - 3
Пряме використання : коли гравець безпосередньо взаємодіє з порталом (через його власнуInteractionArea), телепортація відбувається лише в тому випадку, якщо портал зараз активний.
In-Game/In-Editor використання
Приклад результату виконання завдання.
build info
- compiler
- 2.0.5.1 · 4054EF9BF6C4510A
- built
- 2026-11-08 14:31:25 UTC
WebUniverse