Разработка игр в Roblox: погружение в типы данных и работу с переменными
Рады приветствовать всех, кто интересуется геймдизайном! Спешим поделиться отличной новостью: готовится к выходу третье издание книги Андрея Корягина «Roblox: играй, программируй и создавай свои миры». В качестве анонса предлагаем изучить ключевую главу, посвященную фундаментальным основам Luau — типам данных и базовым операциям.
Понятие переменных
Прежде чем приступать к написанию сложных игровых механик, необходимо разобраться с фундаментом любого языка программирования — типами данных. В Luau выделяют следующие категории:
- Числа (number): включают целые значения, числа с плавающей запятой (дробные) и экспоненциальные формы записи.
- Строки (string): любые текстовые последовательности символов.
- Логический тип (boolean): принимает одно из двух значений —
true(истина) илиfalse(ложь). - Таблицы (table): универсальная структура для создания массивов, списков и словарей.
- Функции (function): обособленные фрагменты кода, выполняющие определенную задачу.
- Nil: специальный тип, обозначающий отсутствие значения или «пустоту».
Переменная — это поименованная область памяти, в которой хранится определенное значение. Присвоив имени конкретные данные, мы можем обращаться к ним в любой момент работы программы.

Переменные разделяются по области видимости:
- Глобальные: доступны из любого места в коде.
- Локальные: область их действия ограничена блоком кода, где они были объявлены. Для их создания используется ключевое слово
local.
При именовании можно использовать латинские буквы (в разных регистрах), цифры (но не в начале имени) и подчеркивания. Примеры корректных имен: score, Player_1, maxHealth, speed2.
Практика в Roblox Studio
Для закрепления материала создадим скрипт в среде разработки. Откройте пустой шаблон Baseplate, в окне Explorer найдите объект Workspace, нажмите «+» и выберите Script.

После создания откроется редактор кода. По умолчанию там уже находится функция print("Hello world!"). Она выводит содержимое скобок в окно Output. Обратите внимание, что текстовые строки всегда заключаются в кавычки.

Нажмите Play. В консоли (Output) появится заветная фраза, но уже без кавычек — это результат выполнения программы.

Числовые и строковые типы данных
В Luau работа с числами интуитивно понятна. Дробная часть всегда отделяется точкой. Рассмотрим примеры записи:

Здесь мы видим целые числа, десятичные дроби разной точности, отрицательные значения и научную нотацию (экспоненциальную форму). При запуске Roblox автоматически преобразует сложные записи в стандартный числовой вид.
Что касается строк, то это универсальный контейнер для символов. В них можно хранить кириллицу, латиницу и даже цифры, которые в данном случае будут считаться текстом.

Распространенная ошибка новичков — отсутствие кавычек при объявлении строки. В таком случае Roblox Studio выдаст ошибку, указав номер строки и тип проблемы.

Логические операции и булева алгебра
Логический тип данных (Boolean) незаменим для проверки условий. Он оперирует понятиями true (1) и false (0). Для работы с ними используются операторы not (отрицание), and (конъюнкция) и or (дизъюнкция).
| A | B | A and B | A or B | not A |
|---|---|---|---|---|
| 1 (true) | 1 (true) | 1 | 1 | 0 |
| 0 (false) | 1 (true) | 0 | 1 | 1 |
| 1 (true) | 0 (false) | 0 | 1 | 0 |
| 0 (false) | 0 (false) | 0 | 0 | 1 |
Эти правила позволяют создавать сложные условия для поведения персонажей, открытия дверей или начисления очков в игре.
Приведение типов (Type Casting)
Иногда требуется преобразовать один тип данных в другой. Для этого существуют встроенные функции:
tostring()— превращает число (или другой тип) в текстовую строку.tonumber()— пытается преобразовать строку в число (сработает только в том случае, если строка содержит цифры).
Для проверки текущего типа данных используется функция type(). Это помогает избежать ошибок при выполнении математических операций над данными, полученными в текстовом формате.

Хотите узнать больше о создании профессиональных миров в Roblox? Оформите предзаказ на книгу «Roblox: играй, программируй и создавай свои миры. 3-е изд.» со скидкой 35% на официальном сайте издательства. Для получения скидки используйте промокод: Предзаказ


