28 подписчиков
### 1. Установка Godot Engine
- Запустите редактор и создайте новый проект.
---
### 2. Основы синтаксиса GDScript
#### Переменные и типы:
var number = 10 # int
var text = "Hello, Godot!" # String
var is_active = true # bool
var velocity = Vector2(1, 0) # Vector2
var color = Color(1, 0, 0) # Color (RGB)
#### Функции:
func _ready():
print("Объект готов!")
func add(a, b):
return a + b
#### Условные операторы:
if health <= 0:
print("Игрок умер!")
elif health < 50:
print("Низкое здоровье!")
else:
print("Всё в порядке.")
---
### 3. Работа с узлами (Nodes)
Узлы — основа Godot. Каждый объект в игре (персонаж, кнопка, камера) это узел.
Пример: изменим текст кнопки при старте игры.
1. Создайте сцену с кнопкой (Button).
2. Присоедините к кнопке скрипт (ПКМ на узле → Attach Script).
3. Напишите код:
extends Button # Указываем, что скрипт привязан к кнопке
func _ready():
text = "Нажми меня!" # Меняем текст кнопки
---
### 4. Обработка сигналов
Сигналы — события (например, нажатие кнопки). Чтобы их обработать:
1. В редакторе перейдите на вкладку Node (справа).
2. Выберите сигнал (например, pressed() для кнопки).
3. Соедините его со скриптом.
Код после подключения сигнала:
extends Button
func _ready():
text = "Нажми меня!"
connect("pressed", self, "_on_button_pressed") # Подключение сигнала вручную
func _on_button_pressed():
print("Кнопка нажата!")
---
### 5. Движение объекта
Создайте сцену с узлом Sprite (например, для персонажа) и добавьте ему скрипт:
extends Sprite
var speed = 200 # Пикселей в секунду
func _process(delta):
# Движение вправо при нажатии D
if Input.is_action_pressed("ui_right"):
position.x += speed * delta
---
### 6. Работа с группами
Группы позволяют управлять несколькими объектами одновременно.
Пример: уничтожить все объекты в группе "enemies".
func destroy_all_enemies():
for enemy in get_tree().get_nodes_in_group("enemies"):
enemy.queue_free() # Удалить объект
---
### 7. Практический пример: управление игроком
1. Создайте сцену с узлом KinematicBody2D (игрок).
2. Добавьте спрайт и коллайдер.
3. Присоедините скрипт:
extends KinematicBody2D
var speed = 400
var velocity = Vector2()
func _physics_process(delta):
velocity = Vector2()
# Управление стрелками
if Input.is_action_pressed("ui_right"):
velocity.x += 1
if Input.is_action_pressed("ui_left"):
velocity.x -= 1
if Input.is_action_pressed("ui_down"):
velocity.y += 1
if Input.is_action_pressed("ui_up"):
velocity.y -= 1
velocity = velocity.normalized() * speed
move_and_slide(velocity)
---
### 8. Советы для новичков
1. Изучите документацию: в Godot встроена подсказка по всем функциям и сигналам (клацните F1).
2. Экспериментируйте: меняйте параметры в реальном времени через Inspector.
3. Используйте готовые примеры: в Asset Library есть бесплатные ассеты.
---
### 9. Ресурсы для обучения
---
Попробуйте создать простую игру (например, «Понг» или «Платформер») и постепенно добавляйте механики. Если что-то не получается — спрашивайте! 😊
2 минуты
11 марта 2025