الإدخال على الأجهزة المحمولة

*This content is translated using AI (Beta) and may contain errors. To view this page in English, click here.

تُلعَب الغالبية العظمى من جلسات Roblox على الأجهزة المحمولة، لذا من المهم مراعاة الاتجاه الأفقي للجهاز المحمول وعوامل العبور عبر الأنظمة الأخرى عند تصميم لعبة لجمهور واسع.

لتبسيط إدخال العبور عبر الأنظمة، بما في ذلك تفاعل اللاعب مع الأزرار الافتراضية، توفر Roblox نظام إجراءات الإدخال لتعريف الإجراءات مثل "قفز"، "الجري"، أو "إطلاق النار" وإعداد الارتباطات لمجموعة متعددة من إدخالات الأجهزة لدفع هذه الإجراءات.

تدعم Roblox أيضًا الميزات المحمولة الأصلية مثل الاهتزاز اللمسي، وإيماءات اللمس مثل TouchSwipe و TouchPinch، أو وظائف الجيروسكوب ومقياس التسارع على الأجهزة التي تدعم AccelerometerEnabled و GyroscopeEnabled.

اكتشاف نوع الإدخال

في تطوير العبور عبر الأنظمة، من المهم أن تحدد وتستجيب لنوع PreferredInput الذي يستخدمه اللاعب، بشكل معتاد لضمان أن تعمل عناصر واجهة المستخدم مثل الأزرار والقوائم على الشاشة بشكل أنيق وتدعم التفاعل عبر الأجهزة.

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

راجع اكتشاف نوع الإدخال لمزيد من المعلومات.

اتجاه الجهاز

افتراضيًا، تعمل ألعاب Roblox في وضع المناظر الطبيعية، مما يسمح للعبة بالتبديل بين "يسار" المناظر الطبيعية و"يمين" المناظر الطبيعية كلما دارت جهاز اللاعب. ومع ذلك، يمكن تثبيت الألعاب على اتجاه معين إذا لزم الأمر.

هناك خمسة أوضاع مختلفة من الاتجاه، بما في ذلك وضعين بناءً على أجهزة الاستشعار وثلاثة أوضاع مقفلة.¹ يمكن تعيين كل من هذه كاتجاه افتراضي من خلال StarterGui.ScreenOrientation، والمتاحة من خلال نافذة الخصائص في الاستوديو.

أوضاع الاستشعار
LandscapeSensorالإعداد الافتراضي لـ Roblox حيث تظهر اللعبة دائمًا في وضع المناظر الطبيعية (لا وضع عمودي) ويكتشف الجهاز اتجاهه الفعلي لضمان أن تكون رؤية اللعبة موجهة دائمًا للأعلى.
Sensorيكتشف الجهاز اتجاهه الفعلي لضمان أن تكون رؤية اللعبة موجهة دائمًا للأعلى، ويتبدل بين وضع المناظر الطبيعية ووضع العمودي حسب الحاجة.
الأوضاع المقفلة
LandscapeLeftفي الأجهزة التي تحتوي على شريط رئيسي/تنقل افتراضي، تكون منطقة اللمس الخاصة بها في أسفل العرض. في الأجهزة التي تحتوي على زر رئيسي فعلي، يكون الزر الرئيسي إلى يسار العرض.
LandscapeRightفي الأجهزة التي تحتوي على شريط رئيسي/تنقل افتراضي، تكون منطقة اللمس الخاصة بها في أسفل العرض. في الأجهزة التي تحتوي على زر رئيسي فعلي، يكون الزر الرئيسي إلى يمين العرض.
Portraitفي الأجهزة التي تحتوي على شريط رئيسي/تنقل افتراضي، تكون منطقة اللمس الخاصة بها في أسفل العرض. في الأجهزة التي تحتوي على زر رئيسي فعلي، يكون الزر الرئيسي أسفل العرض.
¹ لا تتضمن Roblox وضع "العمودي مقلوب" لأنه لا يدعم العديد من الأجهزة هذا الاتجاه بشكل أصلي


بعيدًا عن خاصية StarterGui.ScreenOrientation الافتراضية، يمكنك تغيير الاتجاه أثناء اللعب من خلال PlayerGui.ScreenOrientation. يمكن أن يكون هذا مفيدًا عندما تحتاج اللعبة إلى فرض اتجاه، مثل قفل العرض للوضع Portrait للعبة صغيرة.

يحدد الكود التالي في LocalScript اتجاه الشاشة إلى العمودي بعد تأخير قصير:

LocalScript - تغيير اتجاه الشاشة إلى عمودي

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local playerGui = player.PlayerGui
task.wait(5)
playerGui.ScreenOrientation = Enum.ScreenOrientation.Portrait

أخيرًا، يمكنك اكتشاف التغييرات في اتجاه الشاشة أثناء اللعب من خلال الاستماع إلى تغييرات القيمة على خاصية PlayerGui.CurrentScreenOrientation.

LocalScript - الكشف عن تغييرات اتجاه الشاشة

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local playerGui = player.PlayerGui
local function onOrientationChange()
print("تم تغيير الاتجاه إلى", playerGui.ScreenOrientation)
end
playerGui:GetPropertyChangedSignal("ScreenOrientation"):Connect(onOrientationChange)

الاهتزاز اللمسي

تحتوي معظم الأجهزة المحمولة على محركات مدمجة لتوفير الاهتزاز اللمسي. يمكن أن تعزز الإضافات من الاهتزازات والتشويش بشكل كبير تجربة اللاعب وتوفر ملاحظات دقيقة بعيدًا عن المرئيات أو الصوت.

تدعم Roblox الاهتزازات للأجهزة القابلة للاهتزاز بما في ذلك معظم أجهزة iPhone وPixel وSamsung Galaxy. يتم إدارة الاهتزازات من خلال مثيلات HapticEffect التي يمكن تعيينها لنوع محدد من Type مثل GameplayCollision أو UIClick.

بمجرد وجود HapticEffect، يمكنك بدء تشغيله من خلال الطريقة Play()، على سبيل المثال:


local Workspace = game:GetService("Workspace")
local effect = Instance.new("HapticEffect")
effect.Type = Enum.HapticEffectType.GameplayExplosion
effect.Parent = Workspace
-- تشغيل التأثير الاهتزازي
effect:Play()
©2026 شركة Roblox Corporation. تُعد منصّة Roblox، وشعار Roblox وشعار "توسيع حدود المخيلة"، من ضمن علاماتنا التجارية المسجّلة وغير المسجّلة في الولايات المتحدة وبلدان أخرى.