جدول المحتويات:

إعادة صنع Battle City على GameGo مع Makecode Arcade: 4 خطوات (بالصور)
إعادة صنع Battle City على GameGo مع Makecode Arcade: 4 خطوات (بالصور)

فيديو: إعادة صنع Battle City على GameGo مع Makecode Arcade: 4 خطوات (بالصور)

فيديو: إعادة صنع Battle City على GameGo مع Makecode Arcade: 4 خطوات (بالصور)
فيديو: تحميل حزمه ملفات الـ dll لحل مشاكل الالعاب | dll missing file error fix 2024, شهر نوفمبر
Anonim
Image
Image

GameGo هي وحدة تحكم محمولة للألعاب متوافقة مع Microsoft Makecode تم تطويرها بواسطة TinkerGen STEM education. وهو يعتمد على شريحة STM32F401RET6 ARM Cortex M4 ومصمم لمعلمي العلوم والتكنولوجيا والهندسة والرياضيات أو الأشخاص الذين يحبون الاستمتاع بصنع ألعاب فيديو قديمة. يمكنك متابعة هذا البرنامج التعليمي وتجربة اللعبة في Makecode Arcade simulator ثم تشغيلها على GameGo.

في هذه المقالة سنحاول إعادة إنشاء لعبة إطلاق النار الكلاسيكية للدبابات Battle City ، والتي تم إنتاجها ونشرها في الأصل عام 1985 بواسطة Namco لصالح Nintendo Entertainment System (NES). في اللعبة الأصلية ، يتحكم اللاعب في دبابة ويطلق المقذوفات لتدمير دبابات العدو. تحاول دبابات العدو تدمير قاعدة اللاعب وكذلك دبابة اللاعب نفسها. سنجري بعض التعديلات على طريقة اللعب لتلائم ممارسات برمجة الكتل بشكل أفضل مع GameGo ، لكن طبعتنا الجديدة ستظل تحتفظ بالكثير من التشابه مع اللعبة الأصلية. هيا نبدأ!

اللوازم

GameGo

الخطوة 1: Alter-ego - Yellow Tank

لدينا Alter-ego - Yellow Tank
لدينا Alter-ego - Yellow Tank

افتح Makecode Arcade على https://arcade.makecode.com/ وانقر على مشروع جديد. سنبدأ في صنع الأنا الأخرى الخاصة بنا الخزان الأصفر. اختر تعيين mySprite على كائن من كتلة اللاعب اللطيف وارسم دبابة صفراء متجهة لأعلى كعنصر البداية الخاص بنا ، ضع هذه الكتلة داخل كتلة البداية. إضافة تحريك mySprite مع كتلة الأزرار. الآن لدينا دبابة يمكننا تحريكها باستخدام الأزرار في المحاكاة! رائع ، لكنه دائمًا ما يواجه نفس الاتجاه ، حتى عندما نتحرك لأسفل أو جانبيًا …

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

سنطلق الرصاص بمقذوف محدد للقذيفة (ارسم مربعًا فضيًا صغيرًا لهذا العفريت) من mySprite بسرعات vx vy. داخل كتلة مضغوطة على الزر ، نحتاج إلى التحقق من القيمة المطلقة للاتجاه لمعرفة ما إذا كان الخزان الأصفر يتجه لأعلى / لأسفل لليسار / لليمين. نبدأ بعد ذلك في إطلاق المقذوف بسرعة متغيرة الاتجاه - ولهذا كان لدينا -100 / 100 / -200 / 200 لقيم الاتجاه.

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

الخطوة الثانية: أخرج الأعداء

اخرج الأعداء
اخرج الأعداء
اخرج الأعداء
اخرج الأعداء

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

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

بعد ذلك ، في الكائن الذي تم إنشاؤه من كتلة العدو اللطيفة ، نضيف بعض التأثيرات الرسومية ، ونضعها على بلاطة فارغة عشوائية واستدعاء وظيفة pick_direction لهذا الكائن. في كائن من النوع الذي يصطدم العدو بالحائط ، نسمي نفس الوظيفة ، pick_direction.

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

أخيرًا ، دعنا نضيف طلقات إطلاق النار. نضيف آخر على تحديث اللعبة كل كتلة 500 مللي ثانية ونضع عنصرًا في قائمة العدو. مع احتمال 30٪ أن يقوم كائن العدو بإطلاق قذيفة معادية في اتجاه حركته.

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

الخطوة 3:42 من اللعبة

42 من اللعبة
42 من اللعبة
42 من اللعبة
42 من اللعبة
42 من اللعبة
42 من اللعبة

سنبدأ هذه الخطوة عن طريق إضافة الحياة والنتيجة من علامة التبويب المعلومات وتعيين الحياة على 10 والنتيجة إلى الصفر. ثم نضيف خريطة مجموعة المربعات إلى…. ارسم خريطة الملف لتبدو كما تراه في لقطة الشاشة أعلاه. لا تنس أن تضيف الجدران!

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

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

جربها الآن في المحاكاة لمعرفة ما إذا كانت اللعبة تعمل كما هو متوقع. ثم قم بتحميله على GameGo واستمتع بتحطيم دبابات العدو!

الخطوة 4: لعبة وتحسينات لا نهاية لها

لعبة وتحسينات لا نهاية لها
لعبة وتحسينات لا نهاية لها

في مستودع GitHub الخاص بنا ، يمكنك تنزيل ملفين لـ Makecode Arcade - أحدهما هو نفسه تمامًا الذي ستحصل عليه إذا اتبعت هذا التوجيه والآخر هو نسخة مطورة ، مما أدى إلى إنشاء مستوى تقدم عشوائيًا. تحتوي على 10 مستويات ، كل مستوى يتم إنشاؤه بشكل عشوائي مع زيادة عدد الأعداء في كل مستوى متتالي.

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

إذا قمت بعمل نسخة محسنة من اللعبة ، فشاركها في التعليقات أدناه! لمزيد من المعلومات حول GameGo والأجهزة الأخرى للصانعين ومعلمي العلوم والتكنولوجيا والهندسة والرياضيات ، قم بزيارة موقعنا على الإنترنت ، https://tinkergen.com/ واشترك في مدونتنا.

بدأت TinkerGen حملة Kickstarter لـ MARK (Make A Robot Kit) ، وهي مجموعة روبوت لتعليم الترميز ، والروبوتات ، والذكاء الاصطناعي!

موصى به: