→ كل الدروس
الدرس 1

اصنع أول Obby لك

مضمار عقبات فيه حمم ونقاط حفظ ومنصة تختفي وخط نهاية.

مجاني45 دقيقة · مبتدئ · Roblox Studio
1
الخطوة 1 / 10

أنشئ مكانًا جديدًا

  1. افتح Roblox Studio وسجّل الدخول.
  2. اضغط New Experience واختر قالب Baseplate.
  3. صار عندك أرضية رمادية مسطحة. سيقف مضمارك عليها.

المزيد من التفاصيل

  • Roblox Studio برنامج مجاني لأجهزة Windows وMac. إذا لم يكن مثبتًا عندك، نزّله من create.roblox.com وسجّل الدخول بحساب Roblox الخاص بك.
  • قالب Baseplate موجود في قائمة القوالب على شاشة البداية. هو القالب الذي يعرض أرضية رمادية فارغة.
  • يُفتح المكان في تبويب. اسم التبويب هو اسم مكانك.
  • على جهاز Mac استخدم المفتاح Cmd كلما قال هذا الدرس Ctrl.
نصيحة. احفظ كثيرًا بالأمر File → Save to Roblox. يحتفظ Studio بالنسخ القديمة، فتستطيع دائمًا الرجوع.
هذه الخطوة لا تعمل معي

تحقق من هذه الأمور الثلاثة أولًا

  • اسم كل قطعة وكل سكربت مطابق تمامًا لما في الدرس، بنفس الأحرف الكبيرة.
  • السكربت موجود داخل الشيء الصحيح. انظر إلى العنوان فوق صندوق الكود.
  • افتح نافذة Output من قائمة Window. النص الأحمر يعرض السكربت والسطر الذي فيه المشكلة.

ما زلت عالقًا؟ راسلنا ←

2
الخطوة 2 / 10

تعرّف على اللوحات الثلاث

  1. العرض ثلاثي الأبعاد الكبير في الوسط هو Viewport. هذا هو عالم لعبتك.
  2. تعرض Explorer كل الأشياء الموجودة في اللعبة. وتعرض Properties إعدادات الشيء الذي حددته.
  3. حرّك الكاميرا: اضغط زر الفأرة الأيمن مع الاستمرار لتنظر حولك، وطِر بـ W A S D، واهبط واصعد بـ Q وE.
  4. هل تهت؟ حدد أي Part واضغط F. ستقفز الكاميرا إليه.

المزيد من التفاصيل

  • Explorer وProperties على الجانب الأيمن من النافذة. Explorer في الأعلى وProperties تحته.
  • اضغط على شيء في Viewport فيظهر مظلّلًا في Explorer أيضًا. واضغط على اسمه في Explorer فيتحدد في Viewport.
  • المنصة المسطحة التي عليها رمز دائري هي SpawnLocation. يظهر اللاعبون عليها عندما تبدأ اللعبة. اتركها في مكانها.
  • أخطأت؟ اضغط Ctrl+Z لتتراجع عن آخر شيء فعلته. واضغطه مرة أخرى لتتراجع خطوة أخرى.
نصيحة. إذا كانت لوحة ما غير ظاهرة، افتحها من قائمة Window. في النسخ الأقدم تجدها في تبويب View.
هذه الخطوة لا تعمل معي

تحقق من هذه الأمور الثلاثة أولًا

  • اسم كل قطعة وكل سكربت مطابق تمامًا لما في الدرس، بنفس الأحرف الكبيرة.
  • السكربت موجود داخل الشيء الصحيح. انظر إلى العنوان فوق صندوق الكود.
  • افتح نافذة Output من قائمة Window. النص الأحمر يعرض السكربت والسطر الذي فيه المشكلة.

ما زلت عالقًا؟ راسلنا ←

3
الخطوة 3 / 10

ابنِ منصة البداية

  1. في تبويب Home اضغط Part. ستظهر كتلة رمادية.
  2. في Properties اجعل Size يساوي 12, 1, 12 وغيّر اسم الـ Part إلى Start.
  3. فعّل Anchored. الـ Part المثبّت لا يسقط ولا يتحرك أبدًا.
  4. اختر اللون الذي يعجبك بزر Color.

المزيد من التفاصيل

  • تظهر القطعة الجديدة أمام الكاميرا، واسمها في Explorer هو Part.
  • لتغيير اسمها، اضغط عليها مرة واحدة في Explorer ثم اضغط F2، واكتب Start ثم اضغط Enter.
  • في Properties اضغط على الحقل Size، واكتب 12, 1, 12 ثم اضغط Enter. الأرقام الثلاثة هي العرض والارتفاع والعمق.
  • Anchored مربع اختيار في Properties. وعلامة الصح تعني أنه مفعّل.
  • استخدم أداة Move (Ctrl+2) لتضع المنصة بجانب SpawnLocation، حتى يستطيع اللاعبون المشي عليها.
خطأ شائع. أن تنسى Anchored. يبدو الـ Part سليمًا أثناء التعديل، ثم يسقط في الفراغ عندما تبدأ اللعبة.
هذه الخطوة لا تعمل معي

تحقق من هذه الأمور الثلاثة أولًا

  • اسم كل قطعة وكل سكربت مطابق تمامًا لما في الدرس، بنفس الأحرف الكبيرة.
  • السكربت موجود داخل الشيء الصحيح. انظر إلى العنوان فوق صندوق الكود.
  • افتح نافذة Output من قائمة Window. النص الأحمر يعرض السكربت والسطر الذي فيه المشكلة.

ما زلت عالقًا؟ راسلنا ←

4
الخطوة 4 / 10

أضف القفزات

  1. حدد Start واضغط Ctrl+D لتكرره. اسحب النسخة إلى الأمام بأداة Move (Ctrl+2).
  2. صغّرها بأداة Scale (Ctrl+3). الحجم 6, 1, 6 مناسب.
  3. اترك فجوة من 5 إلى 7 studs بين المنصات. كرر حتى يصير عندك من 6 إلى 8 منصات.
  4. ارفع بعض المنصات قليلًا ليصير المضمار صاعدًا.

المزيد من التفاصيل

  • تظهر النسخة فوق الأصل تمامًا، فيبدو كأن شيئًا لم يحدث. اسحب السهم الأزرق أو الأحمر في أداة Move فتنزلق النسخة إلى الخارج.
  • بأداة Scale اسحب إحدى الكرات الصغيرة على القطعة لتغيير حجمها. ويمكنك أيضًا كتابة الحجم في Properties.
  • يعرض الحقل Position في Properties مكان القطعة. قارن أرقام منصتين لتقيس الفجوة بينهما.
  • يجب أن تكون كل منصة Anchored. نسخ القطعة المثبّتة تكون مثبّتة أيضًا، فتحقق من هذا فقط للقطع التي أنشأتها من جديد.
  • اضغط F5 لتجرب القفزات بنفسك، واضغط Shift+F5 لتوقف التجربة. افعل ذلك بعد كل منصتين أو ثلاث.
نصيحة. الشخصية العادية تقفز ارتفاع 7.2 studs وتقطع نحو 8 studs إلى الأمام. الفجوات الأكبر من 8 studs شبه مستحيلة.
هذه الخطوة لا تعمل معي

تحقق من هذه الأمور الثلاثة أولًا

  • اسم كل قطعة وكل سكربت مطابق تمامًا لما في الدرس، بنفس الأحرف الكبيرة.
  • السكربت موجود داخل الشيء الصحيح. انظر إلى العنوان فوق صندوق الكود.
  • افتح نافذة Output من قائمة Window. النص الأحمر يعرض السكربت والسطر الذي فيه المشكلة.

ما زلت عالقًا؟ راسلنا ←

5
الخطوة 5 / 10

أضف حممًا تعيد اللاعب إلى البداية

  1. أضف Part جديدًا بين منصتين. اجعله أحمر، واجعل Material يساوي Neon، وفعّل Anchored وسمّه Lava.
  2. في Explorer مرّر الفأرة فوق Lava، واضغط زر + واختر Script.
  3. احذف السطر الموجود فيه والصق هذا الكود.
Lava > Script
local lava = script.Parent

lava.Touched:Connect(function(hit)
	local humanoid = hit.Parent:FindFirstChildOfClass("Humanoid")
	if humanoid then
		humanoid.Health = 0
	end
end)

ماذا يفعل كل جزء

  • script.Parent هو الـ Part الذي يوجد فيه السكربت. وهنا هو الحمم.
  • يعمل Touched في كل مرة يلمس فيها شيء الـ Part. و hit هو الشيء الذي لمسه، مثل قدم.
  • hit.Parent هو الشخصية كاملة. إذا كان فيها Humanoid فهي لاعب، لذلك يجعل السكربت Health يساوي 0.

المزيد من التفاصيل

  • Material قائمة في Properties. اضغط عليها واختر Neon. يجعل Neon القطعة تتوهج.
  • عندما تضيف Script يُفتح في تبويب جديد وفيه سطر واحد من الكود. اضغط داخل الكود، ثم Ctrl+A لتحديد كل شيء، ثم Ctrl+V للصق فوقه.
  • ارجع إلى عالمك بالضغط على التبويب الذي عليه اسم مكانك.
  • للتجربة: اضغط F5 وامشِ داخل الحمم. تتفكك شخصيتك ثم تعود عند البداية.
  • اجعل الحمم عريضة ومسطحة، مثلًا Size 12, 1, 6، وضعها أخفض قليلًا من المنصات، حتى تسقط فيها القفزة الخاطئة.
هذه الخطوة لا تعمل معي

تحقق من هذه الأمور الثلاثة أولًا

  • اسم كل قطعة وكل سكربت مطابق تمامًا لما في الدرس، بنفس الأحرف الكبيرة.
  • السكربت موجود داخل الشيء الصحيح. انظر إلى العنوان فوق صندوق الكود.
  • افتح نافذة Output من قائمة Window. النص الأحمر يعرض السكربت والسطر الذي فيه المشكلة.

ما زلت عالقًا؟ راسلنا ←

6
الخطوة 6 / 10

أضف نقاط الحفظ

  1. في Explorer مرّر الفأرة فوق Workspace، واضغط + وأضف Folder. سمّه Checkpoints.
  2. ضع ثلاثة Parts مثبّتة على طول المضمار واسحبها إلى الـ Folder. سمّها 1 و2 و3. الـ Part رقم 1 يكون على منصة البداية.
  3. مرّر الفأرة فوق ServerScriptService، واضغط + وأضف Script. الصق هذا الكود.
ServerScriptService > Script
local Players = game:GetService("Players")
local checkpoints = workspace:WaitForChild("Checkpoints")

Players.PlayerAdded:Connect(function(player)
	local stats = Instance.new("Folder")
	stats.Name = "leaderstats"
	stats.Parent = player

	local stage = Instance.new("IntValue")
	stage.Name = "Stage"
	stage.Value = 1
	stage.Parent = stats

	player.CharacterAdded:Connect(function(character)
		local root = character:WaitForChild("HumanoidRootPart")
		local point = checkpoints:FindFirstChild(tostring(stage.Value))
		if point then
			task.wait(0.1)
			root.CFrame = point.CFrame + Vector3.new(0, 4, 0)
		end
	end)
end)

for _, point in ipairs(checkpoints:GetChildren()) do
	point.Touched:Connect(function(hit)
		local player = Players:GetPlayerFromCharacter(hit.Parent)
		local stats = player and player:FindFirstChild("leaderstats")
		if not stats then return end

		local number = tonumber(point.Name)
		if number == stats.Stage.Value + 1 then
			stats.Stage.Value = number
		end
	end)
end

ماذا يفعل كل جزء

  • leaderstats اسم خاص لـ Folder. تظهر القيم الموجودة داخله في قائمة اللاعبين، فيرى الجميع Stage الخاص بك.
  • عندما تظهر الشخصية، ينقلها السكربت إلى نقطة الحفظ التي اسمها يساوي Stage اللاعب.
  • لمس نقطة حفظ يرفع Stage فقط إذا كانت هي التالية. هذا يمنع اللاعبين من تخطي المراحل.

المزيد من التفاصيل

  • Folder يضم أشياء أخرى، مثل المجلد في الحاسوب. وهو لا يفعل شيئًا في اللعبة بنفسه.
  • لسحب قطعة إلى المجلد، اسحب اسمها في Explorer إلى الاسم Checkpoints ثم أفلتها. تصير القطعة بعدها مزاحة خطوة واحدة إلى الداخل، تحت المجلد.
  • اجعل قطع نقاط الحفظ رفيعة وعريضة، مثلًا Size 6, 0.4, 6، وضعها فوق المنصات. واللون المختلف يساعد اللاعبين على ملاحظتها.
  • للتجربة: اضغط F5 وانظر إلى قائمة اللاعبين في الزاوية العلوية اليمنى. تعرض Stage 1. المس نقطة الحفظ 2 فيتغير إلى 2.
  • يجب لمس نقاط الحفظ بالترتيب. ولمس الثالثة قبل الثانية لا يفعل شيئًا.
خطأ شائع. أن تسمي الـ Parts باسم Checkpoint1 أو One. السكربت يبحث عن الأسماء 1 و2 و3 بالضبط.
هذه الخطوة لا تعمل معي

تحقق من هذه الأمور الثلاثة أولًا

  • اسم كل قطعة وكل سكربت مطابق تمامًا لما في الدرس، بنفس الأحرف الكبيرة.
  • السكربت موجود داخل الشيء الصحيح. انظر إلى العنوان فوق صندوق الكود.
  • افتح نافذة Output من قائمة Window. النص الأحمر يعرض السكربت والسطر الذي فيه المشكلة.

ما زلت عالقًا؟ راسلنا ←

7
الخطوة 7 / 10

اصنع منصة تختفي

  1. اختر منصة في وسط المضمار وأضف إليها Script.
  2. الصق هذا الكود واضغط Play لتراها تومض.
Platform > Script
local platform = script.Parent

while true do
	task.wait(2)
	platform.Transparency = 1
	platform.CanCollide = false

	task.wait(2)
	platform.Transparency = 0
	platform.CanCollide = true
end

ماذا يفعل كل جزء

  • while true do تكرر إلى ما لا نهاية.
  • task.wait(2) تتوقف ثانيتين.
  • Transparency يساوي 1 يجعل الـ Part غير مرئي. و CanCollide يساوي false يجعل اللاعبين يسقطون من خلاله.

المزيد من التفاصيل

  • لإضافة Script، مرّر الفأرة فوق اسم المنصة في Explorer، واضغط + واختر Script، تمامًا كما فعلت مع الحمم.
  • تكون المنصة مرئية ثانيتين ثم تختفي ثانيتين. على اللاعبين أن يضبطوا توقيت قفزتهم.
  • الرقم الأول هو المدة التي تبقى فيها المنصة مرئية. والرقم الثاني هو المدة التي تبقى فيها مختفية.
  • لا تضع هذا السكربت في منصة البداية ولا في نقطة حفظ، وإلا سقط اللاعبون بمجرد وصولهم.
نصيحة. غيّر الرقمين لتجعل المنصة أسرع أو أبطأ.
هذه الخطوة لا تعمل معي

تحقق من هذه الأمور الثلاثة أولًا

  • اسم كل قطعة وكل سكربت مطابق تمامًا لما في الدرس، بنفس الأحرف الكبيرة.
  • السكربت موجود داخل الشيء الصحيح. انظر إلى العنوان فوق صندوق الكود.
  • افتح نافذة Output من قائمة Window. النص الأحمر يعرض السكربت والسطر الذي فيه المشكلة.

ما زلت عالقًا؟ راسلنا ←

8
الخطوة 8 / 10

ابنِ خط النهاية

  1. ضع Part كبيرًا مثبّتًا في النهاية وسمّه Finish. اجعله ذهبيًا ليرى اللاعبون الهدف.
  2. أضف Script إلى Finish والصق هذا الكود.
Finish > Script
local Players = game:GetService("Players")
local finish = script.Parent
local cooldown = {}

finish.Touched:Connect(function(hit)
	local player = Players:GetPlayerFromCharacter(hit.Parent)
	local stats = player and player:FindFirstChild("leaderstats")
	if not stats or cooldown[player] then return end

	cooldown[player] = true
	stats.Stage.Value = 1
	player:LoadCharacter()

	task.wait(2)
	cooldown[player] = nil
end)

ماذا يفعل كل جزء

  • GetPlayerFromCharacter تعرف أي لاعب لمس خط النهاية.
  • الجدول cooldown يمنع الكود من العمل مرات كثيرة في الثانية نفسها.
  • يعود Stage إلى 1 ويرسل LoadCharacter اللاعب إلى البداية ليجرب مرة أخرى.

المزيد من التفاصيل

  • لتجعلها ذهبية، اضغط على الحقل Color في Properties واختر لونًا أصفر. ويجعلها Material Neon تلمع.
  • الحجم Size 12, 1, 12 مناسب للنهاية. ضعها بعد القفزة الأخيرة، وأعلى قليلًا من الباقي.
  • للتجربة: اضغط F5، وأنهِ المضمار وقف على القطعة الذهبية. تعود عند البداية ويعرض Stage القيمة 1 من جديد.
  • السبب في فترة الانتظار البالغة ثانيتين أن خطوة واحدة تلمس القطعة مرات كثيرة.
هذه الخطوة لا تعمل معي

تحقق من هذه الأمور الثلاثة أولًا

  • اسم كل قطعة وكل سكربت مطابق تمامًا لما في الدرس، بنفس الأحرف الكبيرة.
  • السكربت موجود داخل الشيء الصحيح. انظر إلى العنوان فوق صندوق الكود.
  • افتح نافذة Output من قائمة Window. النص الأحمر يعرض السكربت والسطر الذي فيه المشكلة.

ما زلت عالقًا؟ راسلنا ←

9
الخطوة 9 / 10

اختبر لعبتك

  1. اضغط F5 لتلعب. اركض في المضمار كله من البداية إلى النهاية.
  2. اسقط في الحمم عمدًا. يجب أن تعود عند آخر نقطة حفظ.
  3. اضغط Shift+F5 لتتوقف.
  4. افتح نافذة Output من قائمة Window. النص الأحمر يعني أن في سكربت خطأً، ويُظهر رقم السطر.

المزيد من التفاصيل

  • F5 يبدأ اللعبة وفيها شخصيتك. يتغير شريط الأدوات أثناء تشغيل اللعبة.
  • التغييرات التي تجريها أثناء تشغيل اللعبة تضيع عندما توقفها. اضغط Shift+F5 دائمًا أولًا، ثم عدّل.
  • في نافذة Output اضغط على سطر أحمر فيفتح Studio السكربت عند السطر الذي فيه الخطأ.
  • تحقق من ثلاثة أشياء عندما لا يعمل شيء: اسم القطعة، ومكان السكربت، وهل Anchored مفعّل.
خطأ شائع. تسقط منصة عند بدء اللعبة: Anchored غير مفعّل. لا يحدث شيء عندما تلمس Part: السكربت في الشيء الخطأ، أو في اسم خطأ إملائي.
هذه الخطوة لا تعمل معي

تحقق من هذه الأمور الثلاثة أولًا

  • اسم كل قطعة وكل سكربت مطابق تمامًا لما في الدرس، بنفس الأحرف الكبيرة.
  • السكربت موجود داخل الشيء الصحيح. انظر إلى العنوان فوق صندوق الكود.
  • افتح نافذة Output من قائمة Window. النص الأحمر يعرض السكربت والسطر الذي فيه المشكلة.

ما زلت عالقًا؟ راسلنا ←

10
الخطوة 10 / 10

انشرها

  1. اختر File → Publish to Roblox. أعطِ اللعبة اسمًا ووصفًا قصيرًا.
  2. في موقع Creator Hub افتح لعبتك واملأ استبيان Maturity. تحتاجه Roblox قبل أن يستطيع الآخرون اللعب.
  3. اجعل اللعبة Public وأرسل الرابط إلى صديق.

المزيد من التفاصيل

  • في أول مرة تنشر فيها، يطلب Studio اسمًا ووصفًا. اضغط Create. بعد ذلك يرسل File → Publish to Roblox أحدث تغييراتك.
  • Creator Hub هو الموقع create.roblox.com. سجّل الدخول بالحساب نفسه واضغط على لعبتك في القائمة.
  • يسأل استبيان Maturity عمّا في لعبتك. أجب بصدق. لعبة Obby مثل هذه ليس فيها عنف ولا شيء مخيف.
  • قد تطلب Roblox المزيد قبل أن تصبح اللعبة عامة، مثل التحقق من العمر على الحساب. تخبرك الصفحة بما ينقص.
  • إذا كان عمرك أقل من 18 سنة، فافعل هذه الخطوة مع أحد والديك.
نصيحة. اطلب من صديق أن يلعب وأنت تراقبه. الأماكن التي يتعثر فيها هي أول ما يجب إصلاحه.
هذه الخطوة لا تعمل معي

تحقق من هذه الأمور الثلاثة أولًا

  • اسم كل قطعة وكل سكربت مطابق تمامًا لما في الدرس، بنفس الأحرف الكبيرة.
  • السكربت موجود داخل الشيء الصحيح. انظر إلى العنوان فوق صندوق الكود.
  • افتح نافذة Output من قائمة Window. النص الأحمر يعرض السكربت والسطر الذي فيه المشكلة.

ما زلت عالقًا؟ راسلنا ←

الآن غيّره بنفسك

  • أضف نقطة حفظ رابعة. ماذا يجب أن تسميها؟
  • اصنع ثلاث منصات تختفي وتومض بسرعات مختلفة.
  • غيّر الحمم لتأخذ نصف الصحة فقط. تلميح: humanoid.Health = humanoid.Health - 50