На телефоне можно читать урок вертикально. Для кода и интерактивных заданий удобнее повернуть экран горизонтально.

Урок 002

002. Первый скрипт

Прикрепляем GDScript к Node2D, создаём файл scripts/main.gd, пишем _ready(), выводим сообщение через print() и проверяем результат в Output.

Что изучаем

В этом уроке мы впервые прикрепляем GDScript к ноде. Код будет маленький: он выводит сообщение в Output.

Но момент важный. С этого начинается поведение игры: сцена перестаёт быть просто набором объектов и получает первую команду.

Зачем нужен скрипт

Без скриптов сцена просто хранит объекты. Она знает, какие ноды есть внутри, как они называются и где находятся.

Скрипт делает объект живым: кнопка реагирует, персонаж двигается, монетка исчезает, таймер считает время. Сегодня мы начнём с самой маленькой реакции: вывести текст в Output.

Что получится

После запуска сцены в нижней панели Output появится сообщение:

Привет, Godot! Сцена запустилась.

Это значит: сцена запустилась, Node2D была создана, Godot вызвал _ready(), а print() выполнился.

Пошагово в Godot

Идём короткими шагами: нажали, увидели, поняли, проверили. Не торопись переписывать код, сначала убедись, что выбран именно Node2D и путь к скрипту правильный.

Открываем сцену main.tscn, которую создали в прошлом уроке. Пока в дереве сцены есть только одна нода — Node2D.
В панели FileSystem видно файл main.tscn. Это файл нашей сцены внутри проекта Godot.
Выделяем Node2D в дереве сцены. Скрипт будет прикреплён именно к этой ноде.
В Inspector поле Script пока пустое (<empty>). Это значит, что у Node2D ещё нет нашего кода.
Нажимаем кнопку добавления скрипта. Так мы создадим первый GDScript для выбранной ноды.
Godot предлагает создать скрипт по пути res://main.gd. Это рабочий вариант, но для порядка в проекте мы создадим папку scripts.
В панели FileSystem открываем контекстное меню и создаём новую папку для скриптов.
Меняем путь на res://scripts/main.gd. Теперь код будет лежать в отдельной папке scripts.
Когда путь задан правильно, нажимаем Create. Godot создаст новый файл main.gd и откроет его в редакторе скриптов.
Godot открыл новый файл main.gd. В нём уже есть шаблонный код: extends Node2D, _ready() и _process().
Упрощаем шаблон и оставляем только то, что нужно для первого урока: _ready() и print().
Теперь в Inspector видно, что к Node2D прикреплён скрипт main.gd.
Запускаем текущую сцену. Окно игры пока пустое — это нормально, потому что наш код выводит сообщение не на экран игры, а в Output.
В панели Output появилось сообщение: «Привет, Godot! Сцена запустилась.» Значит, Godot вызвал _ready(), а print() успешно сработал.

Код урока

В файле scripts/main.gd оставляем такой код:

extends Node2D

func _ready() -> void:
	print("Привет, Godot! Сцена запустилась.")

Разбор кода

extends Node2D

Скрипт прикреплён к Node2D и расширяет её поведение.

func _ready() -> void:

Это специальная функция Godot. Она вызывается, когда нода готова к работе.

print(...)

Выводит сообщение в нижнюю панель Output. Это не текст на игровом экране, а отладочный вывод для разработчика.

Важный шаг: Ctrl + S

После изменения скрипта нажми Ctrl + S. Это сохраняет файл скрипта. Если забыть сохранить файл, можно запустить старую версию кода или запутаться.

Что происходит при запуске

  1. Мы запускаем сцену.
  2. Godot создаёт Node2D.
  3. Godot видит, что к Node2D прикреплён main.gd.
  4. Нода входит в дерево сцены.
  5. Когда нода готова, Godot вызывает _ready().
  6. Внутри _ready() выполняется print().
  7. Текст появляется в Output.

Частые ошибки

  • забыли выбрать Node2D перед Attach Script;
  • сохранили скрипт не в scripts/main.gd;
  • не нажали Ctrl + S после изменения кода;
  • написали ready() вместо _ready();
  • ждут текст в окне игры, хотя print() выводит текст в Output;
  • нарушили отступ внутри функции.

Плохо:

func _ready() -> void:
print("Привет")

Хорошо:

func _ready() -> void:
	print("Привет")

Маленькое задание

Измени текст внутри print(), сохрани файл через Ctrl + S и запусти сцену снова.

extends Node2D

func _ready() -> void:
	print("Мой первый скрипт работает!")

Следующий шаг

В следующем уроке мы добавим первый видимый объект — Sprite2D. Сейчас скрипт только пишет сообщение в Output, а дальше мы увидим объект на экране и начнём менять его свойства через Inspector и код.

← Назад