Menu
CoddyTech

מספרי חדרים

שיעור 6 מתוך 25 בקורס משחק Roblox: הבריחה מהחושך של Coddy.

השחקן צריך לדעת מה העומק שלו. לכל חדר יש מספר: כמאפיין, Number, ועל השלט שמעל הדלת שלו (Sign.SurfaceGui.Number).

בכל חדר יש חלק בלתי נראה בשם Entry, צעד אחד פנימה מהכניסה שלו. כשגופו של שחקן נוגע בו, החדר הזה הופך ל-Room שלו בטבלת הדירוג ולנקודת הביקורת שלו: ה-RespawnLocation של השחקן הוא ה-SpawnLocation שבו הוא חוזר, ולכל חדר יש אחד כזה, Checkpoint.

player.RespawnLocation = room.Checkpoint

Players:GetPlayerFromCharacter(hit.Parent) אומר של מי הגוף שנגע בו, או nil.

challenge icon

אתגר

בינוני

מספר את החדרים והפוך אותם לנקודות שמירה.

  1. הוסף לכל שחקן leaderstats עם Room מסוג IntValue.
  2. בתוך addRoom, הגדר את המאפיין Number לערך count ואת room.Sign.SurfaceGui.Number.Text לערך "Room " .. count.
  3. כתוב את setupEntry(room), שנקראת עבור ה-Lobby ועבור כל חדר חדש: נגיעה ב-room.Entry מגדירה את Room של השחקן למספר שלו, ואת RespawnLocation לערך room.Checkpoint.

לחץ על "שחק" והיכנס לחדר 1: השלט וה-Room שלך יציגו 1. לאחר מכן לחץ על "בדיקה".

נסו בעצמכם

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)

local rooms = workspace.Rooms
local lastRoom = rooms.Lobby -- החדר החדש ביותר
local count = 0 -- חדרים שנוצרו עד כה

-- הלילה יורד: אין שמש, יש מעט אור בכל מקום וערפל
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")

-- פתיחת דלת בסיבוב על צירה
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

local addRoom -- נכתב בהמשך: דלת מוסיפה חדר, ולחדר יש דלת

-- מה קורה כששחקן פותח דלת
local function setupDoor(door)
	door.Panel.Prompt.Triggered:Connect(function(player)
		if door:GetAttribute("Open") then
			return
		end
		if door.Parent == lastRoom then
			addRoom()
		end
		openDoor(door)
	end)
end
setupDoor(workspace.Rooms.Lobby.Door)

-- שיעור 6: מספרי חדרים יופיעו כאן

-- חדר חדש ביציאה מהחדר החדש ביותר
function addRoom()
	count += 1
	local name = Settings.Order[(count - 1) % #Settings.Order + 1]
	if count >= Settings.RoomsToEscape then
		name = "Exit"
	end
	local room = ServerStorage.Rooms[name]:Clone()
	room:PivotTo(lastRoom.Exit.CFrame)
	room.Parent = rooms
	lastRoom = room
	setupDoor(room.Door)
	return room
end

-- כל שחקן: פנס בכל פעם שהוא חוזר לחיים
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)

כל השיעורים ביחידה משחק Roblox: הבריחה מהחושך

תרגלו בעצמכם: Roblox אונליין