
Вы входите в комнату, нажимаете кнопку, и дверь открывается всего на шесть секунд. Успеете добежать до выхода? Такую игру можно собрать в Roblox Studio из нескольких блоков и одного скрипта на Luau. По ходу разберёмся, как кнопка передаёт команду двери и как проверить, что квест можно пройти.
1. Постройте одну комнату
Для работы понадобится Roblox Studio на Windows или macOS и аккаунт Roblox. Как установить Roblox Studio.
Откройте в Roblox Studio шаблон Baseplate. На площадке уже есть точка появления игрока. Обнесите точку появления стенами и оставьте в одной стене единственный выход. Закройте проход блоком Part и назовите его Door. В окне Explorer дверь должна лежать прямо в Workspace.
На стороне, где появляется игрок, поставьте ещё один блок и назовите его Button. Оставьте между кнопкой и дверью несколько шагов. За дверью положите яркую плитку, чтобы было понятно, куда бежать. Сделайте стены достаточно высокими, чтобы через них нельзя было перепрыгнуть. Закрепите стены, дверь, кнопку и плитку через свойство Anchored. У двери проверьте, что CanCollide включено.
Если вы впервые открыли редактор, сначала посмотрите, где находятся Explorer и Properties. Гайд Кодика по Roblox Studio.
2. Добавьте подсказку к кнопке
В Explorer нажмите + рядом с Button и добавьте ProximityPrompt. В его свойствах укажите Открыть дверь в ActionText и Пульт в ObjectText. Когда игрок подойдёт к кнопке, Roblox покажет действие и подходящий элемент управления. На клавиатуре это по умолчанию клавиша E, на сенсорном экране появится кнопка. Документация ProximityPrompt.
3. Откройте дверь на шесть секунд
Добавьте внутрь Button объект Script. Удалите текст, который редактор вставил автоматически, и вставьте этот код.
local button = script.Parent
local prompt = button:WaitForChild("ProximityPrompt")
local door = workspace:WaitForChild("Door")
local openTime = 6
local closedTransparency = door.Transparency
local isOpen = false
prompt.Triggered:Connect(function()
if isOpen then
return
end
isOpen = true
prompt.Enabled = false
door.CanCollide = false
door.Transparency = 0.7
task.delay(openTime, function()
door.Transparency = closedTransparency
door.CanCollide = true
isOpen = false
prompt.Enabled = true
end)
end)
Triggered срабатывает, когда игрок использует кнопку. Скрипт делает дверь полупрозрачной и отключает столкновения, чтобы через неё можно было пройти. Через шесть секунд дверь закрывается, а кнопка снова доступна. Переменная isOpen защищает от второго запуска таймера, пока дверь открыта.
Дверь общая для всех игроков в одном сеансе. Один может нажать кнопку, а другой успеть проскочить. Из этого легко сделать испытание для двоих, если поставить кнопку дальше от двери.
4. Пройдите квест как игрок
Выберите режим Test и нажмите кнопку запуска в Roblox Studio. Сначала подойдите прямо к двери. Она должна остановить вас. Затем нажмите кнопку, пробегите на яркую плитку и дождитесь, пока дверь закроется. Остановите тест, запустите его снова и попробуйте нажать кнопку дважды подряд.
- Подсказка не появляется? Проверьте, что
ProximityPromptнаходится внутриButton, и подойдите ближе. - Подсказка есть, но дверь стоит на месте? Сверьте имя
Door, положение блока вWorkspaceи сообщения в окне Output. - До выхода слишком легко добежать? Сдвиньте кнопку дальше или добавьте препятствие. Меняйте по одной вещи за тест, чтобы видеть, что повлияло на сложность.
Для проверки вдвоём используйте режим Server & Clients с двумя игроками. Один открывает дверь, второй проверяет, что проход открылся и у него. Для игры на телефоне пригодится встроенный эмулятор устройства. Режимы тестирования в Studio.
5. Дайте первому игроку понятную задачу
Попросите кого-нибудь пройти комнату без подсказок с вашей стороны. Если игрок пробегает мимо пульта, подсветите кнопку или разверните точку появления к ней. Если он застревает за дверью после победы, добавьте обратный проход или кнопку на другой стороне. Если все успевают с первой попытки, добавьте один поворот на пути и замерьте время ещё раз.
Когда механика заработает, сохраните игру на Roblox через меню File в Studio. Новая игра по умолчанию закрыта. Чтобы открыть доступ другим, настройте аудиторию проекта и проверьте требования платформы для выбранной возрастной группы. Инструкция Roblox по публикации.