Godot предлагает простую, но необычную архитектуру. Она основана на трёх ключевых элементах: нодах, сценах и скриптах. Эти части взаимосвязаны и образуют фундамент любой игры. Ниже — подробное объяснение, как они устроены и как взаимодействуют между собой.

Установка Godot и создание первого проекта
Начнём с самого простого: как установить Godot и создать свой первый проект. Этот процесс не требует навыков и занимает всего пару минут.
Установка Godot
Чтобы получить Godot, выполните три понятных шага:
1. Откройте официальный сайт: https://godotengine.org.
2. Перейдите в раздел Downloads.
3. Скачайте версию для вашей операционной системы.
Создание проекта first-game
После запуска редактора появится окно Project Manager. В нём создаются и открываются проекты.
Чтобы создать новый проект:
1. Нажмите кнопку "Создать новый проект".
2. Введите имя проекта: first-game.
3. Укажите папку, в которой проект будет храниться.
4. Нажмите кнопку "Создать".

Ноды: основа любого объекта
Нода — это минимальная функциональная единица Godot. Она не обязана быть самостоятельным объектом. Напротив, большинство игровых сущностей собирается из нескольких нод, каждая из которых выполняет одно конкретное действие.
Чтобы понять принцип, важно представить ноду как модуль с жёстко определённой задачей. Если вам нужно отобразить изображение — используется Sprite2D. Для физики — CollisionShape2D и RigidBody2D. Для звука — AudioStreamPlayer. Так формируется подход, в котором каждый объект строится из простых элементов.
Чтобы увидеть на практике, как работает нода, создадим простую кнопку. Для этого откройте сцену, нажмите «Добавить дочерний узел», введите в поиске Button и добавьте её. Эта нода уже содержит готовые свойства и сигнал нажатия, так что это удобный первый пример.

У любой ноды есть характеристики, определяющие её поведение.
Свойства
Это параметры, которые задают состояние ноды: координаты, угол поворота, размеры, цвет, источник звука, путь к текстуре. Свойства корректируются как через редактор, так и программно.
Для примера используем созданную кнопку.
Чтобы изменить её надпись, выделите ноду Button и найдите в инспекторе свойство «Text» — оно отвечает за текст, отображаемый на кнопке. Введите нужную фразу, и она сразу появится на объекте.

Размер кнопки также регулируется через свойства. В инспекторе раскройте раздел Layout -> Tranform и измените значения ширины и высоты. Так вы управляете внешним видом ноды без использования скриптов.

Методы
📢 Подписывайтесь на наш Telegram-канал.
Там вы найдете анонсы обучающих статей и видео, готовый код для ваших проектов и увлекательные курсы. Ничего лишнего — только практика, вдохновение и развитие.
Метод — это действие. Одни методы управляют нодой напрямую, другие меняют её состояние. Например, AnimationPlayer умеет запускать анимации, Camera2D может следить за персонажем, а любая нода может удалять себя через queue_free(). Методы позволяют взаимодействовать с нодой в реальном времени.
Сигналы
Сигнал — это уведомление о событии. Нода сообщает, что что-то произошло: нажата кнопка, завершилась анимация, обнаружено столкновение. Другие элементы могут подписаться на эти сигналы и реагировать. Это снижает связанность и позволяет строить гибкую архитектуру.
Сцены: структуры из нод
Сцена объединяет ноды в последовательность, образующую целостный объект. Это может быть как простой интерфейсный элемент, так и целый уровень. Сцена служит контейнером, где ноды располагаются в иерархии и взаимодействуют между собой.
Например, персонаж обычно включает несколько компонентов: отображение, анимацию, физическую модель, звук шагов и камеру. Каждая часть оформлена как отдельная нода, но вместе они образуют логический объект — сцену Player.
Благодаря структуре сцены вы можете легко управлять сложностью. Один элемент отвечает за визуал, другой за столкновения, третий за поведение. Если вам нужно изменить внешний вид — вы корректируете один компонент. Если требуется переработать анимации — затрагиваете другой. Сцена изолирует элементы, сохраняя гибкость.
Для примера я переименую нашу созданную сцену в first-scene и сохраню ее.

Наследование сцен
Godot позволяет наследовать сцены. Это значит, что вы можете создать базовый объект — например, EnemyBase — и затем сформировать вариации на его основе. Дочерние сцены унаследуют структуру и свойства, но смогут менять конкретные детали.
Подход удобен, когда в игре есть несколько похожих объектов: разные виды врагов, разновидности предметов, версии интерфейса. Изменив базовую сцену, вы влияете на все её варианты автоматически.
Вложенность сцен
Особенность Godot заключается в том, что сцена сама по себе является нодой. Это позволяет включать одну сцену внутрь другой. Например, вы создаёте сцену объекта Pickup, а затем размещаете её в сцене уровня Level, добавляя разные предметы в нужные точки карты.
Такой подход делает уровень не набором скриптов, а структурой из готовых элементов. Это удобнее и быстрее. Каждый объект можно редактировать отдельно, а затем использовать в любых других сценах.
Скрипты: логика поведения
Скрипт расширяет функциональность ноды. Он не заменяет её возможности, а добавляет собственные действия, связанные с игровой механикой. Если ноды — это механика, сцены — конструкция, то скрипты — поведение.
Скрипт всегда прикреплён к конкретной ноде. Это означает, что он получает доступ ко всем её свойствам, методам и сигналам. Он может менять их в любой момент, реагировать на события и строить игровую логику.
Продолжим работать с примером кнопки. Рассмотрим два простых сценария.
Для создания скрипта, связанного со сценой, нажимаем на значок пергамента.

При нажатии на кнопку нужно выводим сообщение в консоль
Это один из самых базовых способов увидеть, что скрипт работает.
Выбираем в дереве сцены нашу ноду Button. Затем в правой части окна открываем вкладку «Сигналы». Находим в списке сигнал pressed и дважды нажимаем на него. Появится окно подключения. Выбираем узел, к которому нужно привязать сигнал (обычно сама сцена), и нажимаем «Присоединить». После этого в скрипте появится функция _on_button_pressed(), и она будет вызываться при каждом нажатии кнопки.

В итоге получится простой скрипт:
func _on_button_pressed():
print("Кнопка нажата")
Когда пользователь нажимает кнопку, сигнал отправляется, и вызывается этот метод.
Скрываем кнопку при нажатии
Вы можете менять свойства кнопки прямо из скрипта. Например, скрывать её после нажатия:
func _on_button_pressed():
visible = false
Такой приём используется в меню, всплывающих окнах и подсказках. Скрипт добавляет поведение, которого нет в ноде изначально, и позволяет вам контролировать объект полностью.
26.11.2025
0
15
Комментарии
0