Основные типы данных и способы работы с ними

Разработка игр в Roblox: погружение в типы данных и работу с переменными

Рады приветствовать всех, кто интересуется геймдизайном! Спешим поделиться отличной новостью: готовится к выходу третье издание книги Андрея Корягина «Roblox: играй, программируй и создавай свои миры». В качестве анонса предлагаем изучить ключевую главу, посвященную фундаментальным основам Luau — типам данных и базовым операциям.

Понятие переменных

Прежде чем приступать к написанию сложных игровых механик, необходимо разобраться с фундаментом любого языка программирования — типами данных. В Luau выделяют следующие категории:

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

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

Основные типы данных и способы работы с ними
РИС. 2.1. Глобальные и локальные переменные

Переменные разделяются по области видимости:

  • Глобальные: доступны из любого места в коде.
  • Локальные: область их действия ограничена блоком кода, где они были объявлены. Для их создания используется ключевое слово local.

При именовании можно использовать латинские буквы (в разных регистрах), цифры (но не в начале имени) и подчеркивания. Примеры корректных имен: score, Player_1, maxHealth, speed2.

Практика в Roblox Studio

Для закрепления материала создадим скрипт в среде разработки. Откройте пустой шаблон Baseplate, в окне Explorer найдите объект Workspace, нажмите «+» и выберите Script.

Создание нового скрипта в Workspace
РИС. 2.2. Процесс добавления скрипта

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

Интерфейс редактора скриптов
РИС. 2.3. Стандартное окно Script

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

Проверка работы скрипта в консоли
РИС. 2.4. Вывод данных в Output

Числовые и строковые типы данных

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

Примеры записи чисел в коде
РИС. 2.5. Различные форматы числовых данных

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

Что касается строк, то это универсальный контейнер для символов. В них можно хранить кириллицу, латиницу и даже цифры, которые в данном случае будут считаться текстом.

Примеры строковых значений
РИС. 2.7. Работа со строками

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

Пример синтаксической ошибки
РИС. 2.9. Ошибка из-за отсутствия кавычек

Логические операции и булева алгебра

Логический тип данных (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(). Это помогает избежать ошибок при выполнении математических операций над данными, полученными в текстовом формате.

Демонстрация смены типа данных
РИС. 2.11. Преобразование числа в строку

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

 

Источник

Читайте также