Управляющие конструкции — это каркас логики, на котором держится поведение игры. Они позволяют принимать решения, повторять действия и работать с данными гибко и безопасно. В этой статье разберём условия, циклы, операторы, строки, массивы, словари и современную конструкцию match. Всё — на понятных примерах и с акцентом на практическое применение.

Условия: гибкое принятие решений
Ветвления позволяют реагировать на ситуацию в игре: состояние персонажа, окружение, вход игрока. Синтаксис простой и читаемый:
if health <= 0:
die()
elif health < 25:
use_potion()
else:
print("Персонаж в порядке")
Условия можно комбинировать:
if is_on_floor() and velocity.y > 0:
land()
Циклы: повторяющиеся действия
GDScript предлагает два ключевых цикла: for и while. Они покрывают большинство сценариев — от обработки списков до работы со временем.
Цикл for
Используется для перебора массива, словаря, диапазона или любого итерируемого объекта:
var enemies = ["orc", "troll", "goblin"]
for enemy in enemies:
print("Встречен: ", enemy)
Перебор диапазона:
for i in range(5):
print(i) # 0,1,2,3,4
Цикл while
Подходит там, где вы не знаете количество итераций заранее:
while stamina > 0:
stamina -= 1
break и continue
- break — прекращает цикл;
- continue — переходит к следующей итерации.
for i in range(10):
if i == 5:
break
if i % 2 == 0:
continue
print(i)
Работа со строками
GDScript даёт несколько способов форматировать и выводить строки.
Конкатенация:
var message = "Hello, " + player_name
Шаблон через %:
var text = "Очки: %s" % score
Интерполяция (Godot 4):
var info = f"HP: {health}, Mana: {mana}"
Массивы: универсальный инструмент хранения данных
📢 Подписывайтесь на наш Telegram-канал.
Там вы найдете анонсы обучающих статей и видео, готовый код для ваших проектов и увлекательные курсы. Ничего лишнего — только практика, вдохновение и развитие.
Массивы хранят набор значений любого типа. Они динамические и легко модифицируются.
var inventory = ["sword", "shield"]
inventory.append("potion")
inventory.erase("shield")
Ключевые методы массива:
- append() — добавить элемент;
- pop_back() — удалить последний;
- insert() — вставить по индексу;
- sort() — сортировать;
- shuffle() — перемешать.
Словари: структурированные данные
Словари — удобная структура для хранения свойств, статов и данных конфигурации.
var stats = {
"hp": 100,
"mp": 50,
"str": 12
}
stats["hp"] -= 10
Важные методы словаря:
- keys() — получить список ключей;
- values() — получить список значений;
- erase(key) — удалить пару;
- has(key) — проверить наличие.
range и генерация последовательностей
Функция range удобна не только в циклах, но и для создания массивов:
var sequence = range(3, 8) # 3,4,5,6,7
Чтобы задать шаг:
for n in range(0, 10, 2):
print(n) # 0,2,4,6,8
match: мощная альтернатива switch
match делает код компактным и хорошо читаемым. Он поддерживает значения, диапазоны и даже типы.
match state:
0:
idle()
1:
walk()
2:
attack()
_:
print("Неизвестное состояние")
Сравнение по типам:
match input_value:
is int:
print("Это число")
is String:
print("Это строка")
Диапазоны:
match speed:
0:
stop()
1..60:
walk()
61..200:
run()
Работа с null и оператором ?
Если объект может отсутствовать, это требует аккуратных проверок.
if target != null:
target.take_damage(10)
Короткая форма — безопасный вызов:
target?.take_damage(10)
Если target пустой — код просто пропустит вызов.
Итоги статьи
Управляющие конструкции формируют “мышление” вашего игрового объекта. В этой статье мы разобрали:
- ветвления if/elif/else;
- циклы for и while;
- операторы break и continue;
- работу со строками;
- массивы и словари;
- функцию range;
- конструкцию match;
- обработку null и оператор ?.
Эти инструменты позволяют описывать любое поведение — от патруля врагов до обработки событий UI. Следующая статья будет посвящена объектно-ориентированному подходу в GDScript: классам, наследованию, сигналам и взаимодействию нод.
26.11.2025
0
14
Комментарии
0