تطوير ألعاب لوحدة تحكم تعتمد على أردوينو باستخدام Unity

صورة
مرحبًا Geek Times!
اليوم سأخبرك بقصة واحدة ليست مثيرة للاهتمام حول كيفية إنشاء وحدة تحكم لعبة بسيطة تعتمد على اردوينو وعملت لعبة بسيطة لها في محرك اللعبة المفضل لدي - Unity.

ألعاب


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

الأجهزة


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

كيف تجمع بين هذا؟


مرة واحدة على الإنترنت ، صادفت رقمًا قياسيًا حول كيفية تجميع أحد المستخدمين لوحدة التحكم في الألعاب البسيطة القائمة على أردوينو ، وتجهيزها بشاشة LCD صغيرة بحجم 84 × 48 بكسل وكتبت بضع ألعاب بسيطة عليها: pong و arkanoid.
كان هذا التطور مثيرًا للاهتمام للغاية بالنسبة لي ، وقررت إنشاء إصدار من وحدة تحكم الألعاب استنادًا إلى متحكم atmega328.

تعزية نفسها


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

صورة
صورة

الآن للألعاب


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

صورة

وما نوع اللعبة؟


قررت أن أبدأ بشيء بسيط. وما هي اللعبة البسيطة التي تعرفها؟ هذا صحيح - بونغ. لكنني قررت أن لا أقوم بونغ بونغ ، بل بونغ واحد - هناك مضرب واحد ، كرة وجدار ، بدلاً من المضرب الثاني.
قمت بتجميعها من مُنشئ مكتوب ، وقمت بتجميعها وتحميلها على وحدة التحكم. يعمل!

الآن دعونا نرتب كل شيء


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

صورة
صورة

مصدر الرمز


كود المصدر بسيط جدا
ما تفعله الوحدة - في المحرر ، يقوم المستخدم بتجميع اللعبة من كائنات واجهة المستخدم ، وتعليق البرامج النصية للحالات ، والظروف ، والجمع بينها.
ما يفعله المترجم (البرنامج النصي parser.cs) - يعمل من خلال جميع الكائنات ، وينظر إلى نصوصها ويضيف أجزاء من التعليمات البرمجية إلى نص ملف build.ino المسؤول عن تنفيذ نظائر هذه البرامج النصية في وحدة التحكم الدقيقة.

رابط للمصادر - يتم تنفيذ drive.google.com/open؟id=0B5INc3_98cSJMEMxZmlWUTh1Ukk
في بداية اللعبة. ويتم حفظه في مجلد Assets / build / text / builded.ino.
يجب أيضًا تحميل هذا الرسم التخطيطي إلى وحدة التحكم.

قيد التوقيف


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

Source: https://habr.com/ru/post/ar382327/


All Articles