Roblox · 2D Раннер · урок 5
Отдельный плейс со стартовым экраном: камера медленно вращается над красивой сценой, на экране — название игры и кнопка «Играть», которая переносит в забег.
Синим — что добавляем на этом уроке.
Workspace ├─ CameraPart (Part) — Anchored, прозрачная; верх смотрит вверх └─ SpawnLocation (SpawnLocation) — под картой — персонажа не видно в кадре StarterPlayer └─ StarterPlayerScripts └─ CameraScript (LocalScript) StarterGui └─ PlayGui (ScreenGui) └─ Frame (Frame) ├─ TextLabel (TextLabel) — название игры и автор └─ PlayButton (TextButton) — «Играть» └─ PlayScript (LocalScript)
Где: StarterPlayer → StarterPlayerScripts · LocalScript
Зачем: Медленно вращает камеру вокруг CameraPart.
-- плавные изменения
local TS = game:GetService("TweenService")
-- камера игрока
local camera = workspace.CurrentCamera
-- точка, откуда снимаем
local cameraPart = workspace:WaitForChild("CameraPart")
-- треть круга за 20 секунд, ровно, без разгона
local tweenInfo = TweenInfo.new(20, Enum.EasingStyle.Linear)
-- кадр: камера игрока успевает появиться
task.wait()
-- встаём в точку съёмки
camera.CFrame = cameraPart.CFrame
-- крутимся без конца
while true do
-- камерой управляет скрипт
camera.CameraType = Enum.CameraType.Scriptable
-- повернуться на 120° вокруг вертикали
local goal = {CFrame = camera.CFrame * CFrame.Angles(0, math.rad(120), 0)}
-- анимация поворота
local tween = TS:Create(camera, tweenInfo, goal)
-- запускаем
tween:Play()
-- ждём конца — и следующая треть круга
tween.Completed:Wait()
-- конец цикла
endГде: StarterGui → PlayGui → Frame → PlayButton · LocalScript
Зачем: По нажатию переносит игрока в забег.
-- ID плейса с забегом — вставь свой из Asset Manager
local PLACE_ID = 0
-- кнопка «Играть»
local button = script.Parent
-- перенос между плейсами
local TeleportService = game:GetService("TeleportService")
-- игрок, который нажал
local player = game.Players.LocalPlayer
-- нажали «Играть»
button.MouseButton1Click:Connect(function()
-- прячем меню
button.Parent.Visible = false
-- переносим в забег
TeleportService:Teleport(PLACE_ID, player)
-- конец обработчика
end)Запусти Play (или Run) и убедись: