1. Основы скриптинга: переменные, типы данных и работа с консолью
Основы скриптинга: переменные, типы данных и работа с консолью
Добро пожаловать на курс «Lua в Roblox: От новичка до создателя игр»! Если вы читаете эту статью, значит, вы решили перейти черту, отделяющую обычного игрока от творца. Roblox — это не просто набор игр, это огромная физическая песочница, которая оживает благодаря языку программирования Lua.
В этой первой статье мы не будем строить сложные системы сохранения данных или создавать искусственный интеллект для зомби. Мы начнем с фундамента. Представьте, что вы учитесь говорить на новом языке. Сначала нужно выучить алфавит и простые слова, прежде чем писать поэмы. Сегодня мы научимся «говорить» с компьютером.
Что такое скрипт и где он живет?
В Roblox Studio все, что происходит в игре (от открытия двери до начисления очков), управляется скриптами. Скрипт — это текстовый файл с инструкциями для компьютера.
Чтобы создать свой первый скрипт:
!Создание нового скрипта в ServerScriptService
Почему именно ServerScriptService? Это безопасное место для скриптов, которые управляют логикой игры на сервере. Игроки не могут видеть или изменять код, который находится здесь.
Ваша первая команда: Hello World
Когда вы откроете созданный скрипт, вы, скорее всего, увидите там строчку:
Это традиция программистов всего мира. Команда print() — это ваш лучший друг. Она не влияет на игровой процесс, не двигает блоки и не убивает персонажей. Всё, что она делает — выводит текст в Консоль (Output).
Чтобы увидеть результат:
Внизу экрана появится текст: Hello world!.
Зачем нам консоль?
Консоль — это диагностический инструмент. Если ваш код не работает, консоль покажет ошибку красным текстом. Если вы хотите проверить, чему равно здоровье игрока в данный момент, вы можете вывести его в консоль.Переменные: Коробочки для данных
Представьте, что вы переезжаете. Чтобы не носить вещи в руках, вы складываете их в коробки. На каждой коробке вы пишете маркером, что внутри: «Книги», «Посуда», «Одежда».
В программировании переменная — это и есть такая коробка. У нее есть имя (надпись маркером) и содержимое (значение).
!Визуализация переменной как коробки с именем и значением
В Lua переменная создается с помощью ключевого слова local. Давайте создадим переменную, которая хранит имя нашего игрока:
Разберем эту строку по косточкам:
* local — мы говорим компьютеру: «Создай новую локальную переменную».
* playerName — это имя нашей коробки. Мы можем назвать её как угодно (почти), но лучше давать понятные имена.
* = — это не знак равенства из математики! В программировании это оператор присваивания. Мы кладем значение справа в коробку слева.
* "RobloxMaster" — это то, что мы положили в коробку.
Теперь, когда мы пишем print(playerName), компьютер заглядывает в коробку с надписью playerName, достает оттуда текст и печатает его.
Правила именования переменных
* Имя не может начинаться с цифры (1stPlayer — ошибка, player1 — можно).
* Имя не может содержать пробелы (my score — ошибка, myScore — можно).
* Lua чувствителен к регистру: Score и score — это две разные переменные.Типы данных: Что можно положить в коробку?
В коробку можно положить книгу, но нельзя положить воду (без бутылки). В Lua тоже есть разные типы «вещей», которые мы храним в переменных. Рассмотрим основные.
1. Числа (Number)
Это любые числа: целые, дробные, положительные или отрицательные.С числами можно производить математические операции. Допустим, мы хотим рассчитать урон. Формула может выглядеть так:
Где — итоговый урон, — базовая сила атаки, а — множитель критического удара.
В коде это выглядит так:
2. Строки (String)
Это текст. Строки всегда должны быть обернуты в кавычки (двойные" или одинарные ').Если вы забудете кавычки, Lua подумает, что вы пытаетесь обратиться к переменной, а не написать текст, и выдаст ошибку.
Склеивание строк (Конкатенация):
В Lua для соединения двух строк используется оператор две точки ...
3. Булевы значения (Boolean)
Это самый простой тип данных. Он имеет всего два значения: *true (истина, да, включено)
* false (ложь, нет, выключено)Они используются для переключателей и проверок.
4. Nil (Пустота)
Это специальный тип данных, который означает «ничего». Если переменная не имеет значения, она равнаnil. Это как пустая коробка, в которой даже воздуха нет.Комментарии: Записки для себя
Иногда код становится сложным, и вы можете забыть, что делает та или иная строка. Для этого существуют комментарии. Это текст, который компьютер игнорирует, но который полезен программисту.
В Lua комментарий начинается с двух дефисов --.
Практика: Создаем анкету персонажа
Давайте объединим все знания и напишем скрипт, который выводит информацию о нашем герое в консоль.
Удалите всё из вашего скрипта и напишите следующее:
> Обратите внимание на функцию tostring(isAlive). Так как isAlive — это булево значение, а мы пытаемся склеить его со строкой, нам нужно явно превратить его в текст командой tostring.
Запустите игру (Play). В консоли вы должны увидеть:
Заключение
Поздравляю! Вы написали свой первый осмысленный код. Вы узнали, что:
* Переменные — это хранилища данных (local name = value).
* Типы данных бывают разными: числа, строки, булевы значения.
* Консоль помогает нам видеть, что происходит внутри скрипта.
В следующей статье мы научимся управлять потоком выполнения кода: заставим компьютер принимать решения с помощью условных операторов if и else. Готовьтесь, будет интересно!