דלתות מתנדנדות
שיעור 3 מתוך 20 בקורס משחק Roblox: בריחה מהחושך של Coddy.
לדלת בלובי יש ProximityPrompt: כשהשחקן קרוב אליה, הוא רואה "E פתיחה" (הקשה בטלפון), ולחיצה מפעילה את Triggered של ההנחיה עם השחקן.
דלת מסתובבת על הציר שלה, לא על האמצע שלה. לדגם הדלת יש חלק בלתי נראה בשם Hinge בקצה שלה. המיקום של הלוח ביחס לציר הוא hinge.CFrame:ToObjectSpace(panel.CFrame); סובבו את הציר רבע סיבוב והצמידו אליו בחזרה את הלוח, ותקבלו דלת פתוחה:
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()הנפשה גורמת לדלת להתנדנד במקום לקפוץ. לאחר שהדלת נפתחת, המאפיין Open שלה מוגדר וההנחיה שלה מושבתת.
אתגר
קל- קבל את TweenService. כתוב
openDoor(door): הגדר את המאפייןOpenשל הדלת, כבה אתdoor.Panel.Prompt, והנפש את הלוח עד לרבע סיבוב של הציר (0.6 שניות). - כתוב
setupDoor(door): כאשר ההנחיה של הלוח מופעלת, פתח את הדלת אלא אם היא כבר פתוחה. - הגדר את
workspace.Rooms.Lobby.Door.
לחץ על Play, גש אל הדלת ולחץ על E. לאחר מכן לחץ על Check.
נסו בעצמכם
local Players = game:GetService("Players")
local ServerStorage = game:GetService("ServerStorage")
local Lighting = game:GetService("Lighting")
local Settings = require(game.ReplicatedStorage.Settings)
-- הלילה יורד: אין שמש, מעט אור בכל מקום, וערפל
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")
-- כל שחקן: פנס בכל פעם שהדמות נולדת מחדש
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)
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.