Ознайомлення з рушієм Godot
Встановлення Godot
Встановлення Godot - Mono
Встановлення Godot.
Перейдіть по посиланню та скачайте mono білд для вашої OS.
Наприклад - win-64 (Godot_v4.5.1-stable_mono_win64.zip)




Запуск Godot



Встановлення Dotnet.



Створення першого Godot проєкту
Створення першого 2D Godot проєкту
Створення Godot проєкту.


2 - Шлях

2 - Шлях

Настройка Godot проєкту
Розширення, C#, Dotnet
Термінологія
У Godot, Node (Вузол) - це базовий будівельний блок будь-якої сцени. Уявіть його як об'єкт, який може містити інші об'єкти (тобто, інші Node). Він має властивості (variables) та функції (methods), які визначають його поведінку та вигляд.
По суті, все у вашій грі, від спрайтів та звуків, до камер та логіки гри, реалізовано як Node або його нащадки. Вони організовані в ієрархічну структуру - дерево сцен, де кожен Node може бути батьком для інших Node, створюючи складні та інтерактивні сцени.
У Godot, Scene (Сцена) - це сукупність Node, організованих в ієрархічну структуру, що являє собою певну частину вашої гри.
Уявіть сцену як рівень, персонажа, інтерфейс користувача, або будь-який інший самостійний елемент гри. Вона зберігається як файл (.tscn або .glb) і може бути повторно використана в різних частинах вашої гри.
Кожна сцена має кореневий Node, від якого починається ієрархія. Сцени можна вкладати одна в одну, створюючи складніші структури. Наприклад, сцена персонажа може бути вкладена в сцену рівня.
Після створення нового проєкту його потрібно настроїти для роботи з 2D.
Для початку потрібно створити новий Node2D який буде ядром нашого проєкту.


2 - Пуста (відсутня) сцена.
3 - Режим редактору - 2D.




Огляд файлової структури Godot проєкту
.csproj, *.godot, etc.
- project-folder
- icon.svgЛого Godot
- icon.svg.importФайл у якому зберігається конфігурація імпорту 'icon.svg'
- main.tscnФайл нашої головної сцени
- project.godotОсновний файл проєкту Godot
Загальний огляд інтерфейсу
Node Tree, Меню, Inspector, File System

- 1Дерево
Node-ів. - 2Файлове дерево.
- 3Режими редактору 2D/3D/Код.
- 4Настройки окремого
Node-у вибраного у [1]. - 5Меню з якого можна запустити гру.
- 6Різноманітні інструменти для взаємодії з редактором використовуючи мишку.
- 7Стандартні меню для запуску, дебагу, збереження і ТД.
- 8Viewport нашого редактора.
- 9Нижнє меню.
VSCode
Настройка VSCode для роботи з Godot та настройка Godot для роботи з VSCode
НЕ ОБОВ'ЯЗКОВО, З GODOT МОЖНА ПРАЦЮВАТИ БЕЗ ЗОВНІШНЬОГО ТЕКСТОВОГО РЕДАКТОРА
VSCode:
Встановіть всі розширення роботи з C#.
Потім встановіть Godot розширення - 'C# Tools for Godot'.
Godot:
Джерело інформації: Документація Godot
Перейдіть в Editor → Editor Settings та змініть Dotnet → Editor → External Editor на Visual Studio Code.
(Windows): Якщо ви тільки що встановили VSCode - перезагрузіть Windows.
VSCode:
Далі у папці вашої гри потрібно створити наступні файли:
- project-folder
- .vscode
- launch.json
- tasks.json
- всі-інші-файли
{
"version": "0.2.0",
"configurations": [
{
"name": "Play",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${env:GODOT4}",
"args": [],
"cwd": "${workspaceFolder}",
"stopAtEntry": false,
}
]
}Замініть ${env:GODOT4} на шлях до .exe файлу Godot.
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"command": "dotnet",
"type": "process",
"args": [
"build"
],
"problemMatcher": "$msCompile"
}
]
}RUN!
Перший запуск проєкту.
Додайте новий Node, а саме CharacterBody2D, а у ньому Sprite2D, структура повинна бути така:
- Node2D
- CharacterBody2D
- Sprite2D
Додайте картинку 'icon.svg' до Sprite2D.
До CharacterBody2D додайте скрипт, та вставте цей код:
using Godot;
public partial class CharacterBody2d : CharacterBody2D
{
// Швидкість руху персонажа. Використовуємо float, бо це число з плаваючою комою, що дозволяє більш плавне керування.
private const float Speed = 500.0f;
// Метод, який викликається, коли вузол (node) стає готовим до роботи.
// Це схоже на метод `main` в інших мовах. Тут ми можемо виконати початкову ініціалізацію.
public override void _Ready()
{
// Виводимо текст "TEST!" в консоль Godot для перевірки, що скрипт працює.
GD.Print("TEST!");
}
// Метод, який викликається на кожному фізичному кадрі.
// Фізичний кадр відбувається з фіксованою частотою, що корисно для фізичних симуляцій.
// double delta - це час, який минув між поточним та попереднім фізичним кадром.
public override void _PhysicsProcess(double delta)
{
// Отримуємо напрямок руху від користувача.
Vector2 direction = GetDirection();
// Обчислюємо вектор швидкості, помножуючи напрямок на швидкість.
Vector2 velocity = direction * Speed;
// Встановлюємо швидкість персонажа. CharacterBody2D має властивість Velocity, яка визначає його швидкість.
Velocity = velocity;
// Переміщуємо персонажа і обробляємо колізії.
// MoveAndSlide() використовує фізичний рушій Godot для переміщення персонажа і обробки зіткнень з іншими об'єктами.
MoveAndSlide();
}
// Метод, який визначає напрямок руху персонажа на основі натиснутих клавіш.
public Vector2 GetDirection()
{
// Створюємо новий вектор напрямку, початково встановлений в (0, 0).
Vector2 direction = new Vector2();
// Перевіряємо, чи натиснута клавіша "W". Якщо так, додаємо -1 до Y-компоненти напрямку (рух вгору).
if (Input.IsPhysicalKeyPressed(Key.W))
{
direction.Y += -1;
}
// Перевіряємо, чи натиснута клавіша "S". Якщо так, додаємо 1 до Y-компоненти напрямку (рух вниз).
if (Input.IsPhysicalKeyPressed(Key.S))
{
direction.Y += 1;
}
// Перевіряємо, чи натиснута клавіша "A". Якщо так, додаємо -1 до X-компоненти напрямку (рух вліво).
if (Input.IsPhysicalKeyPressed(Key.A))
{
direction.X += -1;
}
// Перевіряємо, чи натиснута клавіша "D". Якщо так, додаємо 1 до X-компоненти напрямку (рух вправо).
if (Input.IsPhysicalKeyPressed(Key.D))
{
direction.X += 1;
}
// Повертаємо вектор напрямку.
return direction;
}
}Запустіть ваш проєкт.
Додаткова інформація.
Що, чому та як.
Що таке override (перевизначення)?
У Godot (і в C# загалом), override використовується, коли ви хочете змінити (перевизначити) поведінку методу, який вже визначений у базовому класі (в цьому випадку, CharacterBody2D).
Чому це потрібно?
Уявіть, що CharacterBody2D має базовий метод _PhysicsProcess. Він робить якісь стандартні речі для всіх персонажів. Але ви хочете, щоб ваш конкретний персонаж робив щось специфічне крім цього (наприклад, рухався іншим способом). Використовуючи override, ви говорите: 'Я беру цей метод з базового класу, але зміню його, щоб він робив те, що мені потрібно'.
Як це працює?
- Базовий клас:
CharacterBody2Dмає метод _PhysicsProcess (він вже визначений в ньому). - Наслідування: Ваш клас (
CharacterBody2d) наслідуєCharacterBody2D(це означає, що він бере всі його властивості та методи). - Перевизначення: Ви використовуєте ключове слово override перед визначенням _PhysicsProcess у вашому класі. Це говорить компілятору, що ви хочете змінити поведінку цього методу, який ви успадкували від базового класу.
Важливо:
- Метод, який ви перевизначаєте, повинен мати таку ж сигнатуру (ім'я, тип повернення, параметри), як і метод у базовому класі.
- override дозволяє вам налаштувати поведінку класу, не змінюючи базовий клас. Це робить ваш код більш гнучким і організованим.
У прикладі: public override void _PhysicsProcess(double delta) говорить: 'Я беру метод _PhysicsProcess з класу CharacterBody2D, але замінюю його своєю власною версією, яка визначає, як цей конкретний персонаж рухається'.
build info
- compiler
- 2.0.5.1 · 4054EF9BF6C4510A
- built
- 2026-11-08 14:31:25 UTC
WebUniverse