Чтобы управлять объектами в Godot, нужно уверенно владеть переменными, функциями и правилами видимости. Эти инструменты определяют, где хранятся данные, кто может к ним обращаться и как организовано поведение нод. Разберём всё по порядку — подробно и с практическими примерами.

Переменные: основа состояния объекта
Переменная — это контейнер для данных. В GDScript их объявляют с помощью ключевого слова var. Переменные могут хранить число, строку, вектор или целый объект.
var speed = 180
var name = "Goblin"
var direction = Vector2.RIGHT
Если игра растёт, полезно ограничивать тип данных:
var speed: float = 180.0
Так код становится предсказуемее. Ошибки ловятся раньше, а производительность повышается.
Модификатор onready: инициализация в нужный момент
Когда переменной нужно присвоить значение после появления ноды в сцене, используют onready. Это важно для элементов, которые существуют только после загрузки дерева.
onready var sprite = $Sprite2D
Константы: фиксированные значения
Константы вводят через const. Это данные, которые вы не хотите менять в процессе игры: лимиты, параметры баланса, ключевые значения.
const MAX_SPEED = 500
const DAMAGE_MULTIPLIER = 1.2
Попытка изменить константу вызовет ошибку. Это защищает проект от случайных изменений.
Функции: что именно делает объект
Функция описывает действие. Например, обработку урона, перемещение или взаимодействие с игроком.
func take_damage(amount):
health -= amount
Функция может возвращать результат:
func is_dead() -> bool:
return health <= 0
Аргументы и значения по умолчанию
Функции легко адаптировать под разные ситуации, добавляя аргументы:
func move_to(point: Vector2, speed := 200):
position = position.move_toward(point, speed)
📢 Подписывайтесь на наш Telegram-канал.
Там вы найдете анонсы обучающих статей и видео, готовый код для ваших проектов и увлекательные курсы. Ничего лишнего — только практика, вдохновение и развитие.
Если значение не передано — используется то, что указано после :=.
Жизненный цикл ноды: встроенные методы
Godot автоматически вызывает некоторые функции. Это помогает реагировать на изменения сцены.
- _ready() — нода готова и находится в дереве.
- _process(delta) — выполнение каждый кадр.
- _physics_process(delta) — выполнение фиксированными интервалами.
func _ready():
print("Нода загружена")
func _process(delta):
rotation += 1.5 * delta
Области видимости: кто видит переменную
У переменных есть три уровня видимости:
- локальный — доступен только внутри функции;
- внутренний (член класса) — доступен всем методам этого скрипта;
- глобальный — создан через автозагрузку.
Локальные переменные
Существуют только в пределах функции:
func attack():
var dmg = 15
print(dmg)
Внутренние переменные
Объявляются вне функций и принадлежат объекту:
var health = 100
func heal(amount):
health += amount
Глобальные переменные через Autoload
Их используют для данных вроде прогресса игры, настроек, глобальных флагов.
Пример обращения:
GameState.score += 1
Контроль доступа: setget
Если вам нужно контролировать изменение переменной, используйте аксессоры:
var health: int = 100 setget _set_health
func _set_health(v):
health = clamp(v, 0, 100)
Так вы создаёте “защитный барьер” вокруг переменной.
Статические функции: независимые инструменты
Статические методы не требуют создания объекта. Они удобны для утилит или вычислений:
static func lerp_fast(a, b, t):
return a + (b - a) * t
Итоги статьи
Мы разобрали ключевые механизмы, которые формируют структуру любого скрипта в GDScript:
- var — переменные объекта;
- onready — инициализация после загрузки дерева;
- const — неизменяемые данные;
- func — логика поведения;
- аргументы и значения по умолчанию — гибкость функций;
- _ready, _process, _physics_process — точки входа в игровой цикл;
- области видимости — порядок организации данных;
- setget — контроль за изменением переменных;
- static — функции без привязки к объекту.
26.11.2025
0
10
Комментарии
0