Code Every Day 🚀
30 subscribers
687 photos
243 videos
22 files
174 links
Просто для развлечения
Download Telegram
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
Roblox: Делаем шлагбаум: Рефакторинг

🎯 Сегодня решил привести код в порядок.

👉 Добавил отдельную функцию для применения bounce интеролятора
👉 Добавил отдельную функцию для применения bubble интеролятора
👉 Интегрировал их в основной метод поворта шлагбаума barrierMoving
👉 Добавил список доступных интерполяторов, который поддерживает данный скрипт

👍 Код стал более читаемым, в случае доработки, более удобным для расширения.
👉 Для наглядности пригладываю код в виде скриншотов.

#Roblox
👍1
Media is too big
VIEW IN TELEGRAM
Roblox: Программируем дверь

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

👉 В игровой мир добавил пару блоков стен, поменял у них материал на Enum.Material.Brick, закрепил их, чтобы не падали Anchored = true

👉 Добавил объект двери Size = 1,15,10, сместил Pivot = 0,0,-5, чтобы опорная точка была вначале полотна двери, также закрепил ее чтобы не падала и указал материал Enum.Material.Wood

👉 Добавил скрипт, в котором реализовал логику открытия и закрытия двери. Также воспользовался функциями вращения объекта вокруг опорной точки BasePart:GetPivot() и BasePart:PivotTo() .

Пример на демо

#Roblox
👍1