← Все практические скрипты
Ловушки · Уверенный · 20 мин

Вращающаяся преграда

Создайте вращающийся луч для полосы препятствий.

Иллюстрация: Вращающаяся преграда
🎯 Что получится

Луч постоянно вращается вокруг своей вертикальной оси; при касании снимает здоровье.

1. Подготовьте объект

Где разместить: Script внутри Part с именем Spinner

Создайте длинный узкий Part Spinner.
Установите Anchored = true, CanCollide = false.
Поместите его в центр платформы горизонтально.
Добавьте Script внутрь Spinner.

2. Вставьте код

Script
local spinner = script.Parent
local RunService = game:GetService("RunService")
local DEGREES_PER_SECOND = 60
local hitCooldown = {}

RunService.Heartbeat:Connect(function(dt)
    spinner.CFrame = spinner.CFrame * CFrame.Angles(0, math.rad(DEGREES_PER_SECOND) * dt, 0)
end)

spinner.Touched:Connect(function(hit)
    local character = hit:FindFirstAncestorOfClass("Model")
    local humanoid = character and character:FindFirstChildOfClass("Humanoid")
    if not humanoid or humanoid.Health <= 0 or hitCooldown[humanoid] then return end
    hitCooldown[humanoid] = true
    humanoid:TakeDamage(20)
    task.delay(1, function() hitCooldown[humanoid] = nil end)
end)

3. Проверьте в игре

Нажмите Play в Roblox Studio и проверьте действие механики. Если механика не работает, откройте окно Output и проверьте тип скрипта, его расположение и названия объектов.

Ваш прогресс

Когда проверите механику в Roblox Studio, отметьте практику как выполненную. Отметка хранится только в этом браузере, не в личном кабинете.

Если объединяете несколько скриптов

Добавляйте механики по одной и проверяйте окно Output. Не создавайте несколько одинаковых систем монет или интерфейсов; скрипты, меняющие WalkSpeed, прыжок или освещение, могут влиять друг на друга.

⭐ Три шага к собственной игре
1. Повторите и измените

Измените DEGREES_PER_SECOND на 90.

2. Улучшите

Сделайте второй Spinner в другом месте трассы.

3. Придумайте своё

Постройте арену с несколькими вращающимися препятствиями.

4. Проверьте себя

Что в игре меняется у вращающейся преграды?

🛠 Если не работает

Убедитесь, что Spinner заякорен и не является частью модели, приваренной к другим деталям. Для регистрации касаний оставьте CanTouch = true.