Сцена гравця та дій введення¶
В наступних двох уроках ми спроектуємо сцену гравця, зареєструємо спеціальні дії введення та закодуємо рух гравця. Зрештою, у вас вийде ігровий персонаж, який рухається у восьми напрямках.
Створіть нову сцену перейшовши в меню Сцена вгорі зліва і натиснувши Нова сцена. Створіть вузол KinematicBody в якості кореня і назвіть його Player.
Кінематичні тіла доповнюють область і жорсткі тіла, що використовуються в посібнику з 2D-гри. Як і жорсткі тіла, вони можуть рухатися і стикатися з навколишнім середовищем, але рух їм задаєте ви, а не фізика рушія. Ви побачите, як ми використовуємо унікальні функції вузла під час кодування механізмів стрибка та розчавлювання.
Дивись також
Щоб дізнатися більше про різні типи фізичних вузлів, перегляньте Physics introduction.
На даний момент ми збираємося створити базовий конструкт (риг) для 3D-моделі нашого персонажа. Він дозволить нам обертати модель пізніше за допомогою коду, поки вона відтворює анімацію.
Додайте вузол Spatial в якості нащадка Player і назвіть його Pivot. Потім на панелі Файлова система розгорніть папку art/
двічі клацнувши її і перетягніть player.glb
на вузол Pivot.
Це має створити екземпляр моделі в якості нащадка Pivot. Можете перейменувати його на Character.
Примітка
Файли .glb
містять дані 3D-сцени на основі специфікації з відкритим вихідним кодом GLTF 2.0. Вони є сучасною і потужною альтернативою пропрієтарному формату, такому як FBX, який Godot також підтримує. Щоб створити ці файли, ми розробили модель в Blender 3D і експортували її в GLTF.
Як і у всіх видах фізичних вузлів, нам потрібна форма зіткнення, щоб наш персонаж стикався з навколишнім середовищем. Виберіть вузол Player ще раз і додайте CollisionShape. У Інспекторі призначте властивості Shape виставіть SphereShape. Під персонажем з'явиться каркас сфери.
Це буде форма, яку фізичний рушій використовує для зіткнення з навколишнім середовищем, тому ми хочемо, щоб він краще підходив до 3D-моделі. Варто трохи зменшити його, перетягнувши помаранчеву крапку у вікні перегляду. Моя сфера має радіус близько 0.8
метрів.
Потім перемістіть фігуру вгору, щоб її дно приблизно вирівнялося з площиною сітки.
Ви можете перемикати видимість моделі, клацнувши значок ока поруч із вузлами Character або Pivot.
Збережіть сцену під назвою Player.tscn
.
Підготувавши вузли ми можемо переходити до кодування. Але спочатку необхідно визначити деякі дії введення.
Створення дій введення¶
Щоб перемістити персонажа, ми прислухаємося до введення гравця, наприклад, натискання клавіш зі стрілками. У Godot, хоча ми могли б прописати всі прив'язки клавіш в коді, є потужна система, яка дозволяє призначити мітку комбінаціям клавіш і кнопок. Це спрощує наші скрипти і робить їх більш читабельними.
Ця система є Картою введення. Щоб отримати доступ до редактора, перейдіть до меню Проект і виберіть пункт Параметри проекту....
Зображення
У верхній частині є кілька вкладок. Натисніть на Карту введення. За допомогою цього вікна ви можете додавати нові дії вгорі; це ваші мітки. У нижній частині ви можете прив'язати клавіші до цих дій.
Проекти Godot поставляються з деякими заздалегідь визначеними діями, призначеними для дизайну інтерфейсу користувача, які ми могли б використовувати тут. Але ми визначаємо свої власні для підтримки геймпаду.
Ми назвемо наші дії move_left
, move_right
, move_forward
, move_back
, та jump
.
Щоб додати дію, напишіть її ім'я в полі вгорі та натисніть Enter.
Створіть п'ять дій. У вашому вікні повинні бути всі перераховані в нижній частині.
Щоб прив'язати клавішу, або кнопку, до дії, натисніть кнопку "+" праворуч від неї. Зробіть це для move_left
і в спливаючому меню натисніть Клавіша.
За допомогою цього параметра ви можете додати введення клавіатури. З'явиться спливаюче вікно в очікуванні, коли ви натиснете клавішу. Натисніть клавішу зі стрілкою вліво та натисніть кнопку Гаразд.
Зробіть те саме для клавіші А.
Тепер додаймо підтримку лівого джойстика геймпада. Натисніть кнопку "+" ще раз, але на цей раз виберіть Вісь джойстика.
Спливаюче вікно дає вам два випадаючі меню. Ліворуч можна вибрати геймпад за індексом. Пристрій 0 відповідає першому підключеному геймпаду, Пристрій 1 відповідає другому і так далі. Ви можете вибрати джойстик і напрямок, який потрібно прив'язати до вхідної дії праворуч. Залиште значення за замовчуванням і натисніть кнопку Додати.
Зробіть те ж саме для інших вхідних дій. Наприклад, прив'яжіть стрілку вправо, D і праву вісь лівого джойстика до move_right
. Після прив'язки всіх клавіш ваш інтерфейс повинен виглядати так.
Залишилося налаштувати дію jump
. Прив'яжіть до неї клавішу пробілу та кнопку A геймпада. Щоб прив'язати кнопку геймпада, виберіть у меню опцію Кнопка джойстика.
Залиште значення за замовчуванням і натисніть кнопку Додати.
Дія введення для стрибка має виглядати так.
Це всі дії, які нам потрібні для цієї гри. За допомогою цього меню можна позначити будь-які групи клавіш і кнопок у ваших проектах.
У наступній частині ми закодуємо і перевіримо рух гравця.