Menu
CoddyTech

Oda Şablonları

Coddy'nin Roblox Oyunu: Karanlıktan Kaçış kursunda ders 4 / 20.

Lobi kapısının arkasında henüz hiçbir şey yok. Odalar, ServerStorage.Rooms içinde bulunan şablonlardır; her biri, görünmez bir Entrance parçası (PrimaryPart'ı, yani modelin pivot noktası) ve kapısının bulunduğu bir Exit parçası olan bir Model'dir.

Bir odayı diğerinin arkasına yerleştirmek tek satır sürer: yeni odanın pivotunu, yani girişini, eski odanın çıkışına yerleştir:

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

Sıradaki şablon Settings.Order içinde, adlardan oluşan bir listede yer alır. Yeni odanın kapısı için setupDoor da gerekir.

challenge icon

Görev

Orta
  1. Ekle: local rooms = workspace.Rooms, local lastRoom = rooms.Lobby ve local count = 0.
  2. setupDoor fonksiyonunun altına addRoom() yaz: count değerini 1 artır, Settings.Order[count] adlı şablonu klonla, onu lastRoom.Exit üzerine yerleştir, üst öğesini rooms yap, onu lastRoom yap, kapısını ayarla ve geri döndür.
  3. Betik sonunda addRoom() işlevini bir kez çağır.

Play'e bas ve lobi kapısını aç. Ardından Check'e bas.

Kendin dene

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)

-- Gece çöker: güneş yok, her yerde hafif bir ışık ve sis var
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")

-- Kapıyı menteşesi üzerinde döndürerek aç
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

-- Bir oyuncu kapıyı açtığında kapının yaptığı şey
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)

-- Her oyuncu: her canlandığında bir el feneri
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 iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Roblox Oyunu: Karanlıktan Kaçış bölümündeki tüm dersler