Menu
CoddyTech

Raumvorlagen

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

Hinter der Lobbytür ist noch nichts. Die Räume sind Vorlagen in ServerStorage.Rooms, jeweils ein Model mit einem unsichtbaren Entrance-Part (seinem PrimaryPart, also dem Pivot des Modells) und einem Exit-Part, an dem sich seine Tür befindet.

Einen Raum hinter einem anderen zu platzieren, ist eine Sache einer Zeile: Setze den Pivot des neuen Raums, seinen Eingang, auf den Ausgang des alten Raums:

local room = ServerStorage.Rooms.Hall:Clone()
room:PivotTo(lastRoom.Exit.CFrame)

Welche Vorlage als Nächstes kommt, steht in Settings.Order, einer Liste mit Namen. Auch die Tür eines neuen Raums benötigt setupDoor.

challenge icon

Aufgabe

Mittel
  1. Füge local rooms = workspace.Rooms, local lastRoom = rooms.Lobby und local count = 0 hinzu.
  2. Schreibe addRoom() unterhalb von setupDoor: erhöhe count um 1, klone die Vorlage mit dem Namen Settings.Order[count], verschiebe sie auf lastRoom.Exit, setze rooms als übergeordnetes Objekt, mache sie zu lastRoom, richte ihre Tür ein und gib sie zurück.
  3. Rufe addRoom() einmal am Ende des Skripts auf.

Drücke Play und öffne die Lobbytür. Klicke dann auf Check.

Probier es selbst

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

-- Die Nacht bricht herein: keine Sonne, überall etwas 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")

-- Eine Tür um ihr Scharnier aufschwingen lassen
local function openDoor(door)
	door:SetAttribute("Open", true)
	door.Panel.Prompt.Enabled = false
	local hinge, panel = door.Hinge, door.Panel
	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()
end

-- Was eine Tür tut, wenn ein Spieler sie öffnet
local function setupDoor(door)
	door.Panel.Prompt.Triggered:Connect(function(player)
		if door:GetAttribute("Open") then
			return
		end
		openDoor(door)
	end)
end
setupDoor(workspace.Rooms.Lobby.Door)

-- Jeder Spieler erhält bei jedem neuen Leben eine Taschenlampe
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