Menu
CoddyTech

Schwingende Türen

Lektion 3 von 20 im Kurs Roblox-Spiel: Entkomme der Dunkelheit von Coddy.

Die Tür der Lobby hat einen ProximityPrompt: Wenn sich der Spieler in ihrer Nähe befindet, sieht er „E Öffnen“ (eine Berührung auf einem Smartphone), und wenn er die Taste drückt, wird das Ereignis Triggered des Prompts mit dem Spieler ausgelöst.

Eine Tür dreht sich um ihr Scharnier, nicht um ihre Mitte. Das Türmodell hat an seiner Kante ein unsichtbares Teil namens Hinge. Die Position des Türblatts, vom Scharnier aus gemessen, ist hinge.CFrame:ToObjectSpace(panel.CFrame); drehe das Scharnier um eine Vierteldrehung und setze diese Position wieder darauf, und schon hast du die geöffnete Tür:

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()

Ein Tween lässt die Tür aufschwingen, anstatt sie springen zu lassen. Sobald die Tür geöffnet ist, wird ihr Attribut Open gesetzt und ihr Prompt deaktiviert.

challenge icon

Aufgabe

Einfach
  1. Rufe TweenService ab. Schreibe openDoor(door): Setze das Attribut Open der Tür, schalte door.Panel.Prompt aus und tween das Panel um eine Vierteldrehung am Scharnier (0.6 Sekunden).
  2. Schreibe setupDoor(door): Wenn der Prompt des Panels ausgelöst wird, öffne die Tür, sofern sie nicht bereits offen ist.
  3. Richte workspace.Rooms.Lobby.Door ein.

Drücke Play, gehe zur Tür und drücke E. Klicke dann auf Check.

Probier es selbst

local Players = game:GetService("Players")
local ServerStorage = game:GetService("ServerStorage")
local Lighting = game:GetService("Lighting")
local Settings = require(game.ReplicatedStorage.Settings)

-- Die Nacht bricht herein: keine Sonne, überall ein wenig Licht und Nebel
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")

-- Jeder Spieler: eine Taschenlampe für jedes Leben
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 dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Roblox-Spiel: Entkomme der Dunkelheit