Code Every Day 🚀
30 subscribers
687 photos
243 videos
22 files
174 links
Просто для развлечения
Download Telegram
👉 Код в виде скриншотов для наглядности
Media is too big
VIEW IN TELEGRAM
Roblox: Делаем шлагбаум

🎯 Сегодня разбирался, как можно сделать шлагбаум. Недавно разбирал тему опорных точек Pivot. Сегодня их будем использовать.

👉 В игровом мире из примитивов Cylinder собираем по кусочкам балку, раскрашиваем ее в разные цвета (красный и белый). Все кусочки соединены друг с другом с помощью сварки Weld. Балку фиксируем в пространставе, делая у первого цилиндра Anchored = false

👉 Основание балки переименовываем в BasePart, опорную точку этого цилиндра смещаем в начало цилиндра.

👉 Добавляем Script , в котором напишем пару функций, одна будет открывать, другая закрывать шлагбаум. В основе функций будет смещение опорной точки.


👉 Пример на демо
#Roblox
👍1
👉 Для наглядности код на скриншотах
Roblox: Делаем шлагбаум: Улучшаем код открытия и закрытия

🎯 В прошлом прототипе для шлагбаума были разработаны две функции open() и close() . Код в них был сильно похож и имел один недостаток, решил сегодня этот момент подправить.

👉 Добавлен один метод, который поворачивает шлагбаум до нужного положения, его теперь можно использовать для открытия или закрытия, можно приоткрывать, то есть поворачивать шлагбаум не на 90 градусов. Работать с ним удобнее.
-- Поворот шлагбаума из текущего исходного положения по оси Y
-- до значения to c шагом step и задержкой отрисовки delayAnimation
-- и корректировкой окончательного положения (доворт до max)
local function barrirMoving(
to: number,
step: number,
delayAnimation: number,
max: number
)


👉 Изменение угла поворота происходит в цикле, конечное значение поворота после выхода из цикла может быть не совсем тем положением, на которое рассчитывали, похоже, что при вычислении угла поврота есть окгруления и по итогу за весь цикл это накаливает некоторое смещение, поэтому после выхода из цикла доворачиваем до нужной позции, чтобы шлагбаум точно имел определенный угол поворота в конце работы функции

👉 Для теста добавим новую функцию, в которой будем со случайной скоростью открывать и закрывать шлагбаум
-- открытие
barrirMoving(-90, math.random(-20, -1), 0.0001, -90)
wait(1)

-- закрытие
barrirMoving(90, math.random(1, 20), 0.0001, 90)
wait(1)

👉 Пример на демо
#Roblox
👉 Код для наглядности в виде скриншотов
👍1
Media is too big
VIEW IN TELEGRAM
Roblox: Делаем шлагбаум: Добавляем реалистичности движению с помощью bubble интерполятора

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

👉 Такой эффект можно достичь с помощью bubble интерполятора. Детали работы и код распишу в следующем посте.

👉 Пример на демо
#Roblox
👍1
Code Every Day 🚀
Roblox: Делаем шлагбаум: Добавляем реалистичности движению с помощью bubble интерполятора 🎯 В прошлых прототипах нам удалось реализовать плавное открытие и закрытие шлагбаума. В реальности, когда шлагбаум закрывается, может быть так, что он не четко опускается…
👉 График функции для bubble интерполятора представлен на скриншоте, видно, как с течением времени будет меняться амплитуда поворота шлагбаума.

👉 В коде в сигнатуру метода движения шлагбаума добавляем флаг useInterpolator: boolean , с помощью которого можем указать применять ли интерполятор или нет

👉 Добавляем функцию рассчета амплитуды поворота с учетом интерполятора

Для наглядности код представлен на скриншотах
👍1
Media is too big
VIEW IN TELEGRAM
Roblox: Делаем шлагбаум: Добавляем реалистичности движению с помощью bounce интерполятора

🎯 Добавим при опускании шлагбаума эффект отскакивающего мячика, то есть в конечной точке шлагбаум отскочит немного наверх, потом снова опустится и так далее с затухающей амплитудой. Выглядит хорошо.

👉 Такой эффект можно достичь с помощью bounce интерполятора. Детали работы и код распишу в следующем посте.

👉 Пример на демо
#Roblox
👍1
Code Every Day 🚀
Roblox: Делаем шлагбаум: Добавляем реалистичности движению с помощью bounce интерполятора 🎯 Добавим при опускании шлагбаума эффект отскакивающего мячика, то есть в конечной точке шлагбаум отскочит немного наверх, потом снова опустится и так далее с затухающей…
👉 График функции для bounce интерполятора представлен на скриншоте, видно, как с течением времени будет меняться амплитуда поворота шлагбаума.

Для наглядности код представлен на скриншотах
2