Menu
CoddyTech

أبواب تتأرجح

الدرس 3 من 25 في دورة لعبة 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 الخاصة بالباب، ويُعطَّل الموجه.

challenge icon

التحدي

سهل

اجعل باب الردهة ينفتح بالدوران.

  1. احصل على TweenService. اكتب openDoor(door): اضبط السمة Open على true وأوقف door.Panel.Prompt.
  2. ثم حرّك door.Panel تدريجيًا لمدة 0.6 ثانية إلى goal الخاص بالجسم، بدوران ربع دورة موجب: math.rad(90).
  3. اكتب setupDoor(door): يفتح door.Panel.Prompt.Triggered الباب ما لم يكن مفتوحًا. استدعِها باستخدام workspace.Rooms.Lobby.Door.

اضغط على «العب» ثم اضغط E عند الباب: سيدور مبتعدًا عنك. ثم اضغط على «تحقق».

جرّب بنفسك

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

-- الدرس 3: الأبواب المتأرجحة يوضع هنا

-- كل لاعب: مصباح يدوي في كل مرة يعود فيها إلى الحياة
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: اهرب من الظلام

تدرّب بنفسك: Playground لـ Roblox