Portas de Balanço
Lição 3 de 20 do curso Jogo de Roblox: Fuja da Escuridão da Coddy.
A porta do saguão tem um ProximityPrompt: quando está perto dela, o jogador vê "E Open" (um toque no celular), e pressioná-lo dispara o evento Triggered do prompt com o jogador.
Uma porta gira na dobradiça, não no meio. O modelo da porta tem uma peça invisível Hinge na borda. A posição do painel, medida a partir da dobradiça, é hinge.CFrame:ToObjectSpace(panel.CFrame); gire a dobradiça um quarto de volta e aplique isso de volta, e você terá a porta aberta:
local goal = hinge.CFrame * CFrame.Angles(0, math.rad(90), 0) * hinge.CFrame:ToObjectSpace(panel.CFrame)
TweenService:Create(panel, TweenInfo.new(0.6), { CFrame = goal }):Play()Um tween faz a porta girar suavemente em vez de saltar. Quando estiver aberta, o atributo Open da porta é definido e o prompt é desativado.
Desafio
Fácil- Obtenha TweenService. Escreva
openDoor(door): defina o atributoOpenda porta, desativedoor.Panel.Prompte anime o painel até completar um quarto de volta na dobradiça (0.6 segundos). - Escreva
setupDoor(door): quando o prompt do painel for acionado, abra a porta, a menos que ela já esteja aberta. - Configure
workspace.Rooms.Lobby.Door.
Pressione Jogar, caminhe até a porta e pressione E. Depois, Verificar.
Experimente você mesmo
local Players = game:GetService("Players")
local ServerStorage = game:GetService("ServerStorage")
local Lighting = game:GetService("Lighting")
local Settings = require(game.ReplicatedStorage.Settings)
-- A noite cai: sem sol, um pouco de luz por toda parte e neblina
Lighting.ClockTime = Settings.ClockTime
Lighting.Ambient = Settings.Ambient
Lighting.OutdoorAmbient = Settings.Ambient
Lighting.FogColor = Color3.new(0, 0, 0)
Lighting.FogEnd = Settings.FogEnd
print("Lights out")
-- Cada jogador: uma lanterna a cada vida
Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function()
local flashlight = ServerStorage.Flashlight:Clone()
flashlight.Parent = player.Backpack
local beam = flashlight.Handle.Beam
flashlight.Activated:Connect(function()
beam.Enabled = not beam.Enabled
end)
end)
end)
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.