اختيار المفاتيح حسب المعنى والتخطيط
استخدم KeyboardEvent.key عندما يجب أن يعتمد الإجراء على الحرف الناتج عن تخطيط لوحة مفاتيح المستخدم، واستخدم KeyboardEvent.code عندما يكون موضع المفتاح الفعلي أهم. يؤثر هذا الفرق في لوحات المفاتيح ذات التخطيطات المختلفة. وفّر تعيينًا متسقًا للمفاتيح وأظهره في التعليمات بدلًا من افتراض أن الجميع يستخدمون WASD.
لا تعترض المفاتيح عندما يكون التركيز في حقل نصي أو عنصر قابل للتحرير. امنع السلوك الافتراضي للمتصفح، مثل تمرير الصفحة، فقط عندما تتعامل مساحة اللعب فعليًا مع ذلك المفتاح. بذلك لن تبتلع اللعبة الكتابة العادية أو تعطل التنقل في المتصفح قبل دخول اللاعب إلى المنطقة التفاعلية.
تتبّع حالة الضغط والإفلات
للحركة المستمرة، فعّل حالة الضغط على المفتاح عند keydown وامسحها عند keyup. قد يكرر المتصفح حدث keydown ما دام المفتاح مضغوطًا، لذا ينبغي أن تتجاهل الحركة التي تُنفّذ مرة واحدة، مثل القفز، التكرارات ما لم يكن التكرار مقصودًا. امسح المفاتيح المضغوطة عندما تفقد اللعبة التركيز أو تصبح النافذة غير نشطة، فقد لا يصل keyup إلى اللعبة بعد انتقال التركيز إلى مكان آخر.
اختبر الضغط على مفتاحين معًا، والضغط المطوّل، والنقر السريع، وفقدان اللعبة للتركيز ثم استعادته. تجاهل أحداث keydown المتكررة للإجراءات التي تنفذ مرة واحدة، إلا إذا كان التكرار مقصودًا. توثق MDN خصائص KeyboardEvent.key وKeyboardEvent.code وأنواع الأحداث؛ اختر الخاصية التي تناسب التعيين.
أسئلة عن ضوابط لوحة المفاتيح لألعاب المتصفح
هل أستخدم KeyboardEvent.key أم KeyboardEvent.code للتحكم في اللعبة؟
استخدم KeyboardEvent.key عندما ينبغي أن تحدد قيمة الحرف أو تخطيط لوحة المفاتيح الإجراء. واستخدم KeyboardEvent.code عندما يكون موضع المفتاح الفعلي هو المقصود. وضّح اختيارك واختبر تخطيطات أخرى.
لماذا ينبغي مسح المفاتيح المضغوطة عند فقدان الصفحة للتركيز؟
بعد انتقال التركيز، قد لا يرسل المتصفح حدث التحرير keyup إلى اللعبة. يمنع مسح حالة الإدخال استمرار الحركة عندما يعود اللاعب.
للمزيد من القراءة
هل لاحظت معلومة قديمة؟ الإبلاغ عن تصحيح