باعتباري لاعبًا متحمسًا لـ Dungeons & Dragons وعشاقًا للتكنولوجيا، قررت رفع مستوى إعداد لعبتي من خلال إنشاء طاولة قهوة مخصصة تتميز بشاشة مدمجة. يعرض هذا الجدول الخرائط والرموز المميزة وتشغيل المؤثرات الصوتية وحتى عرض الأعمال الفنية للاعبين. يتم كل هذا من خلال منصة قوية تسمى Foundry VTT، والتي تشبه Roll20 ولكن مع نموذج تسعير أفضل ونظام وحدة مفتوحة شامل. إنها مثالية لتخصيص تجربة سطح الطاولة الخاصة بك.
أثناء استكشاف طرق لتحسين الإعداد الخاص بي، لاحظت وحدات نمطية تسمح بدمج مجموعات البث مع Foundry. توفر هذه الأدوات وصولاً سريعًا إلى وحدات الماكرو والأوامر، مما يجعل اللعب أكثر سلاسة. ومع ذلك، بعد رؤية سعر مجموعة البث (200 يورو!)، لم أكن مستعدًا للقيام بهذا الاستثمار.
ثم تذكرت شيئًا – قبل بضع سنوات، قمت ببناء آلة آركيد. على الرغم من أن الجهاز قد تم تفكيكه منذ فترة طويلة، إلا أنني لا أزال أملك الأزرار ولوحات التحكم من المشروع. مع القليل من الإبداع والطابعة ثلاثية الأبعاد، قمت بإنشاء "مجموعة البث" الخاصة بي من خلال طباعة صندوق صغير به فتحات للأزرار.
لقد أصبحت الأجهزة جاهزة الآن، ولكن دمجها مع Foundry VTT يمثل تحديًا. كنت أرغب في استخدام Gamepad API في المتصفح لتسجيل الضغطات على الأزرار، لكنني صدمت من قلة المرونة في كيفية تعامل واجهة برمجة التطبيقات مع المدخلات. كان الأسلوب الافتراضي هو استخدام حلقة while(true) للاستقصاء المستمر لحالة الضغط على كل زر. على الرغم من أن هذا يعمل بشكل جيد في حلقة اللعبة باستخدام requestAnimationFrame، إلا أنه بالنسبة لأغراضي، بدا الأمر غير فعال وبصراحة، غبي. أردت ببساطة الرد على الضغطات على الأزرار مع مستمعي الأحداث، وليس التحقق باستمرار من حالة لوحة الألعاب في حلقة لا نهاية لها.
قادني هذا إلى إنشاء Gamepad SDK الذي أشاركه اليوم.
باستخدام SDK هذا، قمت بتبسيط العملية من خلال السماح للمطورين بإضافة مستمعي الأحداث للضغط على الأزرار والإصدارات وتغييرات المحاور مباشرة - دون الحاجة إلى الاستقصاء. ويتضمن أيضًا دعمًا لتوصيل لوحات الألعاب وفصلها، مما يجعل من السهل التكامل مع منصات مثل Foundry VTT أو أي مشروع قائم على المتصفح.
باستخدام SDK هذا، يمكن لأي شخص ربط وحدة التحكم المخصصة الخاصة به بتطبيق يستند إلى المتصفح دون الحاجة إلى التحقق يدويًا من حالات لوحة الألعاب. بالنسبة لجدول D&D الخاص بي، فهذا يعني الآن أنه يمكنني استخدام مجموعة البث المؤقتة الخاصة بي بسلاسة للتحكم في وحدات الماكرو والإجراءات داخل اللعبة والمزيد - كل ذلك بفضل بضعة أزرار وقليل من التعليمات البرمجية.
إذا كنت مهتمًا، فاطلع على SDK، ولا تتردد في التواصل معنا إذا كنت تتطلع إلى حل مشكلات مماثلة!
جيثب: https://github.com/RamonGebben/Gamepad-SDK
NPM: https://www.npmjs.com/package/@pindakaasman/gamepad-sdk
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3