Начало скриптинга

Понятие ЯП и скриптинга
Компьютер понимает машинный код, а люди — нет. Если бы программистам нужно было писать программы с помощью машинного кода, то они бы быстро сошли с ума.

Поэтому программисты придумали специальные программы-переводчики. В этих программах мы можем написать код на понятном нам языке, а они уже переведут его в машинный и скормят компьютеру. Такие программы-переводчики и называются языками программирования.

Если говорить очень просто, скрипт в Roblox — небольшая программа, которая выполняется при запуске нашей игры.
Создание скрипта, окно Output
Вы можете работать на локации с прошлого урока или открыть чистый шаблон.
Посмотрите Видео про создание скрипта.
Обращение к объекту и его свойствам
Понятие переменной и цикла
Мы уже научились менять свойства объектов с помощью скрипта, сейчас постараемся оптимизировать код и изучим одно важное понятие в программировании - переменная.

Переменная указывает путь к объекту. Кроме этого, переменная может хранить значения, но об этом мы поговорим немного позже.
Вместо того, чтобы печатать workspace.
Part, всю эту строку можно сохранить внутри локальной переменной. Локальные переменные создаются путем ввода local, а затем имени переменной.

Локальная переменная работает только в скрипте, в котором он был создан. Большинство используемых вами переменных будут локальными.
Создайте в скрипте переменную:
local colorPart = workspace.Part
Измените цвет объекта, используя переменную:
colorPart.BrickColor = BrickColor.Blue()
Теперь, чтобы изменить какие-либо свойства объекта, мы можем использовать переменную, которую создаем 1 раз в начале кода. А теперь давайте сделаем так, чтобы куб менял цвет раз в несколько секунд.
colorPart.BrickColor = BrickColor.Random()
wait(2)
colorPart.BrickColor = BrickColor.Random()
wait(2)
Команда Random() задает случайный цвет объекту.

Команда wait(2) задает ожидание перед следующим действием (в данном случае 2 секунды)

Цвет объекта изменится 2 раза, но как сделать так, чтобы он менялся постоянно?

Для того, чтобы повторять какой-то набор действий, в программировании используются циклы.
Циклы очень важны в программировании и очень часто применяются.
Цикл можно задать и перенести команды изменения цвета внутрь цикла.
while true do
colorPart.BrickColor = BrickColor.Random()
wait(2)
colorPart.BrickColor = BrickColor.Random()
wait(2)
end
Можно сократить код, убрав повторение:
while true do
colorPart.BrickColor = BrickColor.Random()
wait(2)
end
Код, который вы использовали до сих пор, не будет работать, если есть несколько объектов с одним и тем же именем. Это означает, что если вы хотите, чтобы несколько объектов меняли цвет, вам придется создавать новые объекты и новые сценарии для каждой из них. Это может занять вечность.

Вместо этого вы можете внести небольшие изменения в код, которые позволят вам скопировать и вставить его в любой объект.

Измените путь до объекта на следующую строчку:
ocal colorPart = script.Parent

Данная команда обращается к родителю скрипта - самому объекту. Нам больше не нужно прописывать путь до объекта и мы можем применять данный скрипт к абсолютно любым объектам.
Готовый скрипт
local colorPart = script.Parent

while true do
colorPart.BrickColor = BrickColor.Random()
wait(2)

end

свойство объекта CanCollide

CanCollide - возможность проходить через объект.

При отключении данного свойства персонаж в игре может пройти сквозь объект.

Создайте объект и покажите им, как персонаж проходит сквозь него. Обсудите варианты использования данного свойства в играх (проходимые исчезающие стены, пол, сквозь который можно провалиться и т.д.)
Давай попробуем?
Секрет успеха в том, чтобы начать!