تفعيل الإدخال الطبيعي في جميع أشكال الأجهزة

كمبيوتر مكتبي مزوّد بلوحة مفاتيح وماوس تظهر اللعبة على الشاشة، وتعرض مدخلات الشاشة التي تعمل باللمس للتحكّم في الاتجاهات والماوس.
الشكل 1. الإدخال باستخدام لوحة المفاتيح والماوس وشاشة اللمس

تتوفر أجهزة Android بأشكال وأحجام مختلفة. وسِّع نطاق وصول لعبتك من خلال السماح للاعبين باللعب على أي جهاز يناسبهم، سواء كان هاتفًا أو جهازًا لوحيًا أو كمبيوترًا شخصيًا أو تلفزيونًا أو سيارة أو سماعة رأس للواقع المعزّز. ستتعرّف هنا على ما يلي:

التوافق التلقائي

يتوافق Android تلقائيًا مع الأجهزة التي لا تتضمّن شاشة تعمل باللمس كلما أمكن ذلك، على سبيل المثال:

  • تستجيب dispatchTouchEvent/onTouchEvent بأحداث الحركة حتى في حال النقرات أو إدخال قلم الشاشة. وهذا يعني أنّه في حال عدم وضع علامة في المربّع بجانب نوع الأداة، من المفترض أن يعمل منطق معالجة اللمس مع الماوس والقلم الرصاص.
  • تتم إعادة بث بعض أحداث وحدة التحكّم في الألعاب ووحدة التحكّم في التلفزيون غير المحمولة كأحداث لوحة مفاتيح.
  • في أجهزة الكمبيوتر، يتم تلقائيًا إنشاء اللمسات من خلال النقرات على الماوس في أجهزة مثل "ألعاب Play" وChromeOS. وبما أنّه قد لا تتوفّر شاشة تعمل باللمس للرجوع إليها، يقدّم هذا المستوى الأساسي من التوافق.

  • يتم إرسال أحداث الماوس والقلم اللوحي إلى وظائف الاستدعاء الخاصة باللمس.

  • تتم إعادة بث أحداث وحدة التحكّم في الألعاب ووحدة التحكّم في التلفزيون غير المحمولة كأحداث لوحة مفاتيح.

  • إنّ أشكال الأجهزة المشابهة لأجهزة الكمبيوتر، مثل "ألعاب Play" وChromeOS، تنشئ أحداث لمس بدلاً من أحداث الماوس تلقائيًا لزيادة التوافق إلى أقصى حد مع الألعاب التي تتطلّب إدخالات من شاشة تعمل باللمس.

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

التوافق مع جميع أشكال الأجهزة

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

الوسيط الإدخال التلقائي المعتاد الشاشة التي تعمل باللمس الماوس ولوحة المفاتيح لوحة التحكّم في الألعاب قلم الشاشة1 لوحة تحكم اتجاهية خماسية
الهاتف الشاشة التي تعمل باللمس نعم نعم نعم نعم نعم
شاشة كبيرة الشاشة التي تعمل باللمس نعم نعم نعم نعم نعم
الكمبيوتر الشخصي2 الماوس ولوحة المفاتيح لا نعم نعم لا لا
‫ChromeOS3 لوحة اللمس والماوس ولوحة المفاتيح أحيانًا نعم نعم نعم نعم
أجهزة التلفزيون لوحة تحكم اتجاهية خماسية لا نعم نعم لا نعم
السيارات4
(نظام التشغيل Automotive)
الشاشة التي تعمل باللمس نعم نعم نعم لا نعم
مشاهدة5 الشاشة التي تعمل باللمس نعم لا لا لا لا

يهدف هذا الجدول إلى مساعدتك في تحديد أولويات توفير آليات إدخال جديدة من خلال إبراز طريقة الإدخال المتوقّعة لكل شكل جهاز. يُرجى مراعاة ما يلي:

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

إدخالات الماوس

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

  • إتاحة النقر بيمين أو يسار أو وسط الماوس، بالإضافة إلى أزرار إضافية مثل الرجوع والتقديم
  • رصد عجلة التمرير
  • الإبلاغ عن حركة الماوس بشكل مطلق أو نسبي (يُعرف أيضًا باسم التقاط المؤشر)
  • إمكانية تحديد رموز مؤشرات مخصّصة

تتوفّر أدلة خاصة بأشكال الأجهزة التالية:

الإدخال بلوحة اللمس

يختلف تسجيل الإدخال من لوحة اللمس على Android قليلاً عن ميزة استخدام الماوس. عند الاتصال بـ requestPointerCapture()، يعني ذلك أنّك تطلب الوصول المباشر إلى اللمسات على لوحة اللمس. وهذا يعني أنّك تتلقّى أحداثًا لكل لمسة بالطريقة نفسها التي تتلقّى بها أحداث اللمس المتعدّد من شاشة تعمل باللمس، باستثناء أنّ الإحداثيات تكون في مساحة إحداثيات لوحة اللمس بدلاً من الشاشة. في هذا الوضع، يتم إيقاف ميزة رصد إيماءات لوحة اللمس المُدمَجة في Android وميزة فلترة راحة اليد. على سبيل المثال، إذا كان المستخدم يحرِّك إصبعًا واحدًا على لوحة اللمس بينما يضع إبهامه أيضًا في أسفل يمين الشاشة استعدادًا للنقر، تُحدِّد لعبتك حركة الإصبع التي يجب استخدامها في منطقك (على سبيل المثال، لنقل الكاميرا).

وهذا يعني أنّ لوحات الألعاب المزوّدة بلوحات لمس مدمجة يمكن استخدامها تمامًا مثل شاشة تعمل باللمس لإدخال إشارات قوية تستند إلى الإيماءات.

لتحديد ما إذا كان اللاعب يستخدم الماوس أو لوحة اللمس أثناء التقاط المؤشر، تحقّق من قيم المصدر من InputDevice#getSources() أو MotionEvent#getSource() لـ InputDevice.SOURCE_TOUCHPAD.

إدخالات لوحة المفاتيح

تتوفّر لوحة المفاتيح بشكل عام على جميع أجهزة Android تقريبًا. استنادًا إلى نوع اللعبة التي تُطوّرها، تتراوح مزايا إضافة ميزة التعرّف على لوحة المفاتيح في لعبتك بين توسيع قاعدة اللاعبين من خلال تسهيل استخدام لعبتك وجعلها أكثر إثارة وسهولة في اللعب.

في ما يلي بعض الطرق الشائعة لتحسين لعبتك باستخدام لوحة المفاتيح:

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

على الرغم من أنّ لوحات المفاتيح QWERTY شائعة إلى حدٍ ما، إلا أنّ هناك العديد من التنسيقات الشائعة المختلفة، وبعض الأحرف التي يتم ضغط مفتاح واحد عليها في تنسيق معيّن قد تكون مجموعة مفاتيح في تنسيق آخر.

إذا كانت لعبتك تستخدِم الموضع النسبي للمفاتيح لتنفيذ الإجراءات، مثل استخدام W وA وS وD مثل مفاتيح الأسهم للتنقّل، استخدِم InputDevice.getKeyCodeforKeyLocation() لربط موضع مفتاح QWERTY برمز مفتاح في KeyEvent.getKeyCode(). إذا تغيّر تنسيق المشغّل، يتمّ استدعاء onInputDeviceChanged().

عند إضافة إدخال نص إلى لعبة، يوفّر TextInput في GameActivity آلية للتعامل بشكل موثوق بإدخال IME أو العلامات التشكيلية أو الاختلافات الأخرى في التنسيق الخاصة بمنطقة معيّنة مع مواصلة استخدام محرّك عرض النص داخل اللعبة. ويؤدي ذلك إلى تجنُّب العديد من المشاكل المتعلّقة بمعالجة إدخال لوحة المفاتيح مباشرةً أو استخدام أداة EditText خارج الشاشة.

إدخال بيانات جهاز التحكّم في الألعاب

صورة لوحدة تحكم ألعاب نموذجية يحتوي على لوحة اتجاهية وأربعة أزرار على الجانب الأمامي تحمل الأرقام a وb وx وy، وعصاان ألعاب تمثيليتان وأربعة أزرار تصويب. تظهر أرقام على الصورة، ولكن لا تتم الإشارة إليها في هذه الصفحة.
الشكل 2. مدخلات لوحة التحكّم في الألعاب

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

يمكن لمطوّري التطبيقات الاستماع إلى إدخالات جهاز التحكّم في الألعاب من خلال View أو Activity callbacks، ولكن ننصح مطوّري الألعاب باستخدام مكتبة أدوات التحكّم في الألعاب التي:

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

الإدخال باستخدام قلم الشاشة

صورة تعرض تطبيق رسم. تكون الفرش مفتوحة لعرض الأشكال التي يمكن رسمها باستخدام قلم الشاشة.
الشكل 3. تطبيق رسم يتضمّن لوحة فرش

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

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

أجهزة التحكّم في التلفزيون

صورة لوحدة تحكّم التلفزيون لنظام التشغيل Android تم تحديد لوحة اتجاهات 8 اتجاهات وزر اختيار وزر الميكروفون أو زر المساعد وزر الرجوع وزر الشاشة الرئيسية.
الشكل 4. وحدة تحكّم في التلفزيون

تأتي أجهزة Android TV مزوّدة بجهاز تحكّم عن بُعد يتضمّن لوحة تحكم اتجاهية خماسية تتضمّن الاتجاهات الأربعة وزر حسنًا. تتيح التطبيقات التي تستخدم نظام التطبيقات المصغّرة المضمّن في Android هذه الميزة تلقائيًا، ولكن على المطوّرين اختبار التطبيقات المصغّرة المخصّصة لألعابهم للحفاظ على التوافق مع أجهزة التلفزيون.

يُرجى الاطّلاع على مستندات Android TV للحصول على مزيد من المعلومات.

اعتبارات إضافية

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

مع وضع ذلك في الاعتبار، يُرجى العلم بما يلي:

  • إنّ التحقّق من توفّر نوع من الإدخال أفضل من الفلترة حسب شكل الجهاز. على سبيل المثال، إذا فعّلت ميزة الماوس ولوحة المفاتيح على ChromeOS فقط، لن يستفيد اللاعبون على الأجهزة اللوحية المزوّدة بلوحة مفاتيح قابلة للفصل من جهدك الإضافي.
  • هناك اعتبارات خارج نطاق شكل الجهاز تؤثر في أفضل شكل للإدخال. على سبيل المثال، قد تجعل احتياجات اللاعب المتعلقة بإمكانية الوصول استخدام الماوس أو الشاشة التي تعمل باللمس أمرًا صعبًا أو مؤلمًا، ولكن قد يكون استخدام وحدة تحكّم أو لوحة مفاتيح مثاليًا.
  • أي دعم أفضل من عدم الحصول على أي دعم. من الأفضل الردّ على تغييرات الإدخال على الفور، ولكن يقدّر اللاعبون الحصول على بعض الدعم بدلاً من عدم الحصول على أي دعم ما دام بإمكانهم الوصول إليه.
  • قد تتغيّر أفضل طريقة لإدخال البيانات بين جلسات تشغيل اللعبة. على سبيل المثال، يُفضَّل استخدام شاشة تعمل باللمس عند تشغيل لعبة أثناء التنقل، واستخدام وحدة تحكّم في الألعاب عند توصيل الهاتف بالتلفزيون، واستخدام ماوس ولوحة مفاتيح عند الجلوس على مكتب.

كيفية الردّ على إدخال المستخدم

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

غالبًا ما يريد المطوّرون استخدام طريقة إدخال تلقائية مع تأخيرات مدمجة قبل تغيير واجهة المستخدم. ماذا يعني ذلك؟

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

إتاحة إضافة تعليقات توضيحية إلى الإدخال في بيان التطبيق

على الرغم من أنّ ذلك ليس مطلوبًا، قد يكون من الأفضل إضافة تعليقات توضيحية باستخدام علامات ميزات البيان لتحديد نوع الإدخالات التي تتعامل معها. في ما يلي الإشارات الشائعة:

  • android.hardware.type.pc: أوقِف طبقات التوافق الخاصة بإدخال البيانات على كلّ من أجهزة ChromeOS وأجهزة الكمبيوتر الشخصي لتمكين المطوّرين من معالجة أحداث الماوس مباشرةً. اضبط القيمة على android:required="false" لكي يبقى بإمكانك إرسال اللعبة إلى الهواتف.
  • android.hardware.gamepad: تتلقّى التطبيقات والألعاب أحداث أجهزة التحكّم في الألعاب سواء كانت متوافقة مع أجهزة التحكّم في الألعاب أم لا. يؤدي تحديد علامة البيان هذه وضبط القيمة android:required="false" إلى عرض لعبتك على أجهزة Android TV المزوّدة بوحدات تحكّم في الألعاب.

  1. يمكن للشركات المصنّعة توفير ميزة استخدام قلم الشاشة في بعض الأجهزة، ولكن لا يمكن ضمان توفّر هذه الميزة في أي شكل من أشكال الأجهزة. يمكن توصيل لوحات الرسم بجهاز Android وستظهر كقلم شاشة. 

  2. على الرغم من أنّ بعض أجهزة الكمبيوتر المكتبي تتضمّن شاشة تعمل باللمس وقلمًا إلكترونيًا، لا يستجيب برنامج "ألعاب Google Play" إلا لأحداث الماوس من نظام التشغيل المضيف. لزيادة التوافق إلى أقصى حد، تظهر أحداث الماوس كأحداث لمس في العميل تلقائيًا. راجِع قسم إدخال البيانات باستخدام الماوس للحصول على مزيد من المعلومات. 

  3. تتيح أجهزة ChromeOS بشكل عام استخدام الماوس ولوحة المفاتيح، ولكن شاشات اللمس اختيارية. تتيح العديد من الأجهزة المزوّدة بشاشة تعمل باللمس أيضًا استخدام قلم الشاشة. 

  4. يشير نظام التشغيل Android Automotive إلى السيارات المزوّدة بنظام Android مدمج، والتي يمكن أن تعمل بدون هاتف Android. يشير هذا الرسم البياني إلى نظام التشغيل Automotive. يعرض Android Auto تطبيقًا من الهاتف على السيارة، وقد لا تتضمّن الأجهزة المتوافقة مع Android Auto (العرض) شاشة تعمل باللمس. 

  5. توفّر أجهزة Wear OS إمكانية اتصال محدودة. يمكنك البحث عن الأجهزة الملحقة التي تتضمّن بلوتوث، ولكن غالبًا ما يتعذّر على نظام التشغيل الاتصال بها.