الفصل 30 — المدخلات: لوحة المفاتيح واللمس وعصا التحكم
الجزء 2B — محرك Flame · الفصل 30 من 62 · 8 ساعات
الفصل 30 — المدخلات: لوحة المفاتيح واللمس وعصا التحكم
المستوى: متوسط المدة المقدّرة: 8 ساعات المتطلبات المسبقة: الفصول 27 إلى 29 (تثبيت Flame، و
FlameGame، والمكوّنات ودورة الحياة، والـ sprites والأصول)، والفصل 26 (مدير المدخلات وآلة الحالات)، والفصل 23 (المتجهات والتطبيع) إصدار Flame المستخدم: 1.38.0 ما ستكون قادرًا على فعله في النهاية: التحكم ببطل «زنزانة دارت» بلوحة المفاتيح على الحاسوب، وبالإصبع وعصا التحكم على الجوال، مع زر هجوم، دون كتابة منطق الحركة مرتين.
30.0 — أهداف الفصل
في نهاية هذا الفصل ستكون قادرًا على:
- تعداد أجهزة الإدخال المتاحة على المنصات الثلاث المستهدفة؛
- شرح سبب وجوب عدم الخلط بين النية والمفتاح؛
- ربط
KeyboardEventsبفئةFlameGameواختيار القيمة الصحيحة منKeyEventResult؛ - التمييز بين
KeyDownEventوKeyUpEventوKeyRepeatEvent؛ - تسمية مفتاح باستخدام
LogicalKeyboardKeyوفهم الفرق بينه وبينPhysicalKeyboardKey؛ - دعم تخطيطات ZQSD وWASD والأسهم في وقت واحد؛
- قراءة المجموعة
keysPressedبدل التفاعل مع الحدث، وتبرير هذا الاختيار؛ - استخدام
KeyboardHandlerعلى مكوّن وHasKeyboardHandlerComponentsعلى اللعبة، دون خلطهما معKeyboardEvents؛ - كتابة بطل يتحرك بلوحة المفاتيح، بشيفرة كاملة قابلة للتنفيذ؛
- إصلاح خطأ القطر السريع أكثر من اللازم عبر التطبيع؛
- جعل مكوّن يستجيب للنقر باستخدام
TapCallbacksوالتفاعل معonTapDownوonTapUpوonTapCancel؛ - معرفة أن
TapDetectorلم يعد موجودًا على مستوى اللعبة في Flame 1.38.0 ومعرفة البديلين؛ - تحويل إحداثيات النقر بين الإحداثيات المحلية وإحداثيات اللوحة (canvas) وإحداثيات العالم؛
- تحريك مكوّن بالإصبع باستخدام
DragCallbacks؛ - الاستجابة للتحويم باستخدام
HoverCallbacksوتتبّع المؤشر باستخدامPointerMoveCallbacks؛ - التعامل مع النقر الأيمن عبر
SecondaryTapCallbacksومع عجلة الفأرة عبرScrollCallbacks؛ - بناء
JoystickComponentدون أي صورة، مع knob وbackground ومنطقة ميتة؛ - استثمار
relativeDeltaوintensityوdirection؛ - وضع عصا التحكم في HUD لا في العالم، وتبرير ذلك؛
- بناء زر هجوم باستخدام
HudButtonComponentوتثبيت عنصر باستخدامHudMarginComponent؛ - اكتشاف المنصة لاختيار عناصر التحكم التي ستُعرض؛
- توفير إعادة ربط المفاتيح وتجميع كل ذلك في «زنزانة دارت».
التعليقات
التعليقات مدعومة عبر GitHub Discussions
سجّل الدخول باستخدام GitHub للمشاركة في النقاش