Menu
CoddyTech

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.

challenge icon

Desafio

Fácil
  1. Obtenha TweenService. Escreva openDoor(door): defina o atributo Open da porta, desative door.Panel.Prompt e anime o painel até completar um quarto de volta na dobradiça (0.6 segundos).
  2. Escreva setupDoor(door): quando o prompt do painel for acionado, abra a porta, a menos que ela já esteja aberta.
  3. 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)
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Jogo de Roblox: Fuja da Escuridão