Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Game Development
  2. Complete Games
Gamedevelopment

جعل لعبة مستوحاة من لعبة Megaman في Construct 2

by
Difficulty:IntermediateLength:LongLanguages:

Arabic (العربية/عربي) translation by Rahmat Hidayat (you can also view the original English article)

قم بعمل لعبة مستوحاة من لعبة Megaman-Inspired في Construct 2I سوف أذهب لك من خلال إنشاء لعبة مطلق النار / لعبة مستوحاة من Megaman. في هذا البرنامج التعليمي سوف أستخدم Construct 2 كأداة لجعل اللعبة ، ولكن سأشرح منطق استخدام pseudocode بحيث يمكنك اتباع هذا البرنامج التعليمي بأي لغة أو محرك من اختيارك. 


انقر فوق اللعبة لاعطائها التركيز ، ثم استخدم مفاتيح الأسهم للتحرك والقفز ، و Z لاطلاق النار.

من أجل التركيز على تطبيق اللعب ، لن أشرح كل ميزة Construct 2 ؛ سأفترض أنك تعرف الأساسيات مثل تحميل الرموز المتحركة أو الاصطدام الأساسي أو تشغيل الأصوات. مع ذلك ، دعونا نبدأ في صنع اللعبة.


تحضير العمل الفني

أول الأشياء أولاً ، نحن بحاجة إلى الحصول على النقوش المتحركة في لعبتنا. لحسن الحظ ، لقد غطينا opengameart مع مجموعتهم الرائعة من فن اللعب القانوني. نحن بحاجة إلى أربع مجموعات من العفاريت. بطل واحد ، عدو واحد ، والبلاط لمنصات.

لاستخدامها في Construct 2 ، أقسم sprites البطل إلى إطارات فردية باستخدام GIMP.


الحركة الأساسية

سوف أستخدم سلوك منصة Construct 2 لباقي البرنامج التعليمي حتى أتمكن من التركيز على الجزء الخاص بالتصوير و AI من اللعبة ، والذي كان المحور الرئيسي لهذا البرنامج التعليمي.

Construct 2s platform behaviour
بناء سلوك منصة 2

الحركة الأساسية شرح

إذا كنت تعمل بلغة أخرى ، أو تريد تنفيذ حركة platformer الأساسية الخاصة بك بدلاً من استخدام السلوك المضمّن. ما عليك سوى استخدام الشفرة في هذا القسم إذا كنت لن تستخدم السلوك المدمج لـ Construct 2.

للبدء ، نحتاج إلى النظر في ثلاث طرق يمكن للبطل أن يتحرك بها ؛ يمشي يمشي ، يمشي يسارا ، أو يقفز. كل إطار ، نقوم بتحديث محاكاة اللعبة.

لتحديث شخصية اللاعب ، نقوم بتنفيذ حركة أساسية مثل هذا:

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

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

لإجراء قفزة يجب أولاً التحقق من كون القيمتين غير صحيحتين ، ومن ثم جعل isJump صحيحًا.

لكي يتمكن البطل من القفز ، نحتاج إلى متغير يسمى jumpPower والجاذبية. القيمة الافتراضية لـ jumpPower هي -20 والجاذبية هي 1. المنطق هو إضافة قيمة القدرة على القفز إلى موقف Y للبطل ولإضافة الجاذبية لقفزة قيمة الطاقة.

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

ينسخ سلوك إنشاء النظام الأساسي المضمن 2 رمز المثال أعلاه الذي يتم تقديمه فقط لمساعدة أولئك الذين يعملون بلغة أخرى.


تنفيذ اطلاق النار

الآن يأتي الجزء الرماية من اللعبة. في سلسلة Megaman هناك ثلاثة أنواع من اللقطات: اللقطات العادية ، الطلقات المشحونة ، ولقطات طاقة المدير.

اللقطات العادية هي تفسيرية. تعتبر اللقطات المشحونة هي اللقطات التي يتم شحنها قبل إطلاقها ، وتأتي هذه اللقطات المشحونة في نوعين: نصف مشحونة ، ومشحونة بالكامل. هذه الهجمات المشحونة هي أقوى من اللقطات العادية ، مع المشحونة بالكامل تصبح الأقوى.

تعتبر لقطات الطاقة من بوس هي اللقطات التي حصل عليها اللاعب بعد هزيمة كل رؤساء. الضرر هو نفسه كالمعتاد ولكن لديهم خصائص خاصة لا تحتوي على لقطات عادية.

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

  • لقطات عادية: يقوم اللاعب بالضغط على z ثم يقوم بإطلاقه على الفور (اضغط على الزر). سيتم اطلاق النار رصاصة مرة واحدة كل الصنبور. ستتغير الرسوم المتحركة لتصوير الرسوم المتحركة قبل التبديل الفوري إلى الرسوم المتحركة الدائمة.

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

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

move events in construct 2
نقل الأحداث في Construct 2

قبل أن نطلق رصاصة ، نحتاج إلى النظر إلى الخصائص التي تحتوي عليها الرصاصة:

  • السلطة: قوة الهجوم من الرصاصة ، والضرر الذي ستتعرض له للعدو

  • السرعة: مدى السرعة التي تسير بها الرصاصة

  • زاوية: زاوية التصوير ، تحدد الاتجاه الذي تسلكه النقطة.

هذه الخصائص سوف تختلف لكل رصاصة. على وجه الخصوص ، فإن خاصية الطاقة ستكون مختلفة. تكون خاصية الزاوية عادة واحدة من قيمتين فقط ؛ ما إذا تم إطلاق الرصاص على اليمين أو اليسار ، ما لم تكن رصاصة طاقة رئيسة قد تطلق في زاوية فريدة.

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

add bullet behaviour to the bullets
إضافة سلوك التعداد النقطي للرصاص العفاريت
shooting code spawn new bullet object
رمز اطلاق النار حيث ننتج كائن رصاصة جديد

لقطات مشحونة

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

chapter 1 - add charged time
chapter 1 - shoot full charged bullet
chapter 1 - shoot half charged bullet

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


تنفيذ الاعداء

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

دعونا نصمم سمات عدونا قبل البدء في ترميزها.

  • الصحة: كم عدد الصحة التي حددها عدونا كم عدد اللقطات (وأي نوع) مطلوب لتدميرها.

  • السلطة: قوة الهجوم العدو ، وكم من الضرر لا تعامل لاعبنا.

  • ShotAngle: إلى أي اتجاه يطلق النار على العدو ، يمكن تركه أو حقه أو في أي مكان نريد.

هذا إلى حد كبير ما نحتاجه لعدونا ، والآن دعونا نجعل فئة العدو / الكائن.

فئة / عدو العدو يشبه إلى حد كبير فئة / كائن اللاعب ، باستثناء أن العدو لا يستمع إلى مدخلات اللاعب. وبسبب ذلك نحتاج إلى استبدال الأجزاء التي يستمع فيها البطل إلى مدخلات اللاعب ، إلى AI / log العدو.


عدو هجوم AI

بالنسبة للمبتدئين ، دعونا نتعامل مع منظمة العفو الدولية الأساسية اطلاق النار. العدو سوف يطلق النار على اللاعب عندما يرى اللاعب.

لتحديد ما إذا كان العدو "يرى" اللاعب ، سنحتاج إلى تحديد متغير لعدو يدعى وجهه وهو عبارة عن سلسلة تخزن واحدة من قيمتين ، "اليسار" أو "اليمين".

يحتاج العدو أيضًا إلى نوع من الرؤية ، وهذا هو السبب في أننا سنجعل متغيرًا آخر يسمى النطاق. إذا كان اللاعب ضمن هذا النطاق ، فهذا يعني أن العدو "يرى" اللاعب. الشفرة الزائفة هي كما يلي:

checkSees function

checkSees () وظيفة

ربما كنت قد لاحظت شيئًا في هذا الكود الزائف: فهو لا يعتبر موقف البطل ، لذا سيظل العدو يطلق النار على البطل حتى لو كان في منصات ذات ارتفاعات مختلفة.

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


مما يجعل الأعداء تبادل لاطلاق النار

شفرة pseudocode لتصوير العدو هي كما يلي:

كما ترون ، وظيفة تبادل لاطلاق النار العدو () مماثلة لتلك التي لاعب. يستغرق مسار السبرايت ، قوة الهجوم ، سرعة الرصاص ، وزاوية التصوير كمعلمات.


حركة العدو منظمة العفو الدولية

متى يتحول العدو من مواجهة اليسار إلى مواجهة اليمين؟ بالنسبة إلى بطلنا ، نستخدم إدخال اللاعبين لتغيير الاتجاه الذي يواجهه بطلنا. بالنسبة لعدونا ، لدينا خياران: استخدام نوع من الموقت للتحويل إلى الاتجاه المواجه كل بضع ثوانٍ مع وجود العدو للوقوف بلا حراك ، أو جعل العدو يسير إلى بقعة معينة ثم تبديل اتجاهه المواجه ثم السير إلى مكان آخر لتبديل اتجاهها المواجه مرة أخرى.

يمكن استخدام هذه الطريقة الثانية كدورية منظمة العفو الدولية. بالطبع ، يمكننا فقط أن نجعل العدو يسير في اتجاه واحد ولن نعود أبدا.

يكون pseudocode للطريقة الأولى كما يلي:

switching AI function
تبديل وظائف الذكاء الاصطناعي

العدو بدوريات منظمة العفو الدولية

لكي نجعل دوريات منظمة العفو الدولية ، يجب أن نصنع جسدين غير مرئيين في نهاية كلتا طريقتين لدوريات العدو ، وأن نجعل العدو يتحرك بطريقة أخرى إذا ما اصطدم بهما.

this is how it looks in Construct 2
بدوريات منظمة العفو الدولية

الآن دعونا نكتب pseudocode لدينا للذكاء الاصطناعى للعدو AI:

chapter 2 - patrolling AI

بعد ذلك ، سوف يقوم العدو بدوريات بين نقطتين كما نريد.

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

بالطبع يمكنك إضافة المزيد من نوع AI العدو إذا كنت تريد.


تغيير بالرصاص

دعونا نذهب حول كيف يمكننا أن نجعل الاختلافات بالرصاص لكل من اللاعب والعدو. نحن بصدد صنع الاختلافات بالرصاص من خلال تغيير شيئين: زاوية التصوير ، وعدد الرصاصة.

بهذه الطريقة يمكننا أن نطلق رصاصة واحدة بسيطة ، أو رصاصة ثلاثية موجهة. قبل أن نفعل ذلك سنجعل متغير آخر إلى كائن / فئة العدو المسمى shotAI ، وهو عبارة عن سلسلة. سنستخدم هذا في checkSees () لدينا التحقق من كتلة ، حيث يطلق النار على العدو. ستكون التغييرات التي يتم إجراؤها على كتلة الرموز هذه كما يلي:

chapter 2 - enemy shooting

بالطبع ، اسم الذكاء الاصطناعي ونوع النار الذي يطلقه العدو متروك لكم ، هذا مجرد مثال.

الآن ، دعونا نعمق في ما هو داخل وظيفة shootThreeBullets ().

إذا لم تكن متأكدًا من سبب انتقال 0 إلى اليمين و 180 من اليسار إلى اليسار ، فذلك لأن اتجاه 0 درجة يسير بشكل مستقيم إلى الجانب الأيمن من الشاشة ، و 90 درجة تذهب إلى الجانب السفلي من الشاشة ، وهكذا حتى تصل إلى 360 درجة. بمجرد معرفة القيمة التي تذهب إليها ، يمكنك إنشاء صيغة اللقطة الخاصة بك.

يمكننا أيضًا عمل متغير shotAI للاعب ، لكنني أفضل أن نقوم بتسميته selectShot ، لأن لاعبنا سيختار الرمز النقطي بدلاً من مبرمج من البداية. تي

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

two new variables

نحن بحاجة إلى تتبع متغيرين جديدين:

how to add an array to construct 2
كيفية إضافة صفيف في بناء 2
chapter 2 - function change bullet

سنقوم بدفع عناصر جديدة لقتل arr عندما يهزم اللاعب رئيسه.


ترقية لاعب الرصاص

تمامًا مثل تصوير ثلاث عيارات نارية () ، يمكنك أن تكون مبدعًا وأن تصنع أشكالًا مختلفة من اللقطات. بما أن هذا هو رصاصة البطل ، دعنا نعطيه شيئًا مميزًا.

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


الصحة والموت

هذا هو المكان الذي تبدأ فيه جميع الاختلافات في اللقطات التي نتناولها في الواقع. هذا هو المكان الذي يدمر فيه بطلنا ويقتل العدو ، والعكس الآخر.

لنبدأ ، لنصنع متغيرًا لكلٍّ من البطل وجسم العدو ، المسمى بالصحة وهو int ، ومتغير آخر للبطل المسمى بالأرواح. دعونا نلقي نظرة على pseudocode:

سنجعل نفس pseudocode لأعداء مدمرين ، مثل:

bullet collides with player and enemy
التعامل مع الاصطدامات بالرصاص بين اللاعب والعدو

شريط الصحة واجهة المستخدم الرسومية

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

هذا الشريط الصحي سيتغير تبعا لصحة بطلنا الحالية. الصيغة لتغيير طول الشريط الصحي هي:

chapter 2 - health bar

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


خلق لعبة العالم

الآن بعد أن أنشأنا بطلنا وعدواتنا وإطلاق النار ، نحتاج إلى إنشاء مستويات متعددة ورؤساء.

للحصول على مستويات متعددة يعني أنه في مرحلة ما في اللعبة ، سيصل اللاعب إلى نقطة تفتيش واحدة أو أكثر ، والتي تحول اللعبة من المستوى 1-1 إلى المستوى 1-2 إلى المستوى 1-3 وما إلى ذلك حتى تصل إلى المدير.

عندما يموت اللاعب في مكان ما في المستوى 1-2 ، فهو لا يحتاج إلى إعادة اللعب من البداية إلى المستوى 1-1. كيف أفعل هذا؟ سنقوم أولاً بتكوين المستوى ، ولن أشرح الكثير عن مستوى التصميم ، ولكن هنا هو مستوى المثال في Construct 2

sample level design
تصميم مستوى العينة

الصورة في أعلى الزاوية اليسرى هي طبقة HUD. سيتم التمرير ، تتبع البطل عند لعب اللعبة.


الأبواب ونقاط التفتيش

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

للتعامل مع مستويات متعددة ، نحتاج إلى ثلاثة متغيرات: currentLevel ، و levelName ، و nextLevel.

يتم إنشاء متغير currentLevel في كائن / فئة البطل. يتم إنشاء اسم المستوى في كائن المشهد (المستوى) اللعبة لكل مستوى. يتم إنشاء متغير nextLevel في كائن sprite الأخضر.

المنطق هو كما يلي: عندما يصطدم البطل بالعفريت الأخضر (أسميها greenDoor) ، سوف نغير مستوىنا إلى مشهد اللعبة الذي يكون فيه levelName هو نفس المتغير nextLevel. بعد أن نغير المستوى ، سنغير قيمة المتغير currentLelo الخاص بالبطلة إلى نفس مستوى مستوى اسم لعبة المشهد. هنا هو pseudocode:

change level when touches green door
تغيير المستويات عندما نلمس الباب الأخضر

تهيئة مستوى جديد

هنا هو pseudocode للتعامل مع عندما يتم تحميل المستوى التالي وجاهزة للعب.

chapter 3 - start of layout

مشغلات بدء المشغل

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

نشير إلى هذا الكائن عندما تغير البطل مستوياته أو مات ، حتى نعرف أين نفرغه.

هنا هو pseudocode للتعامل عندما يموت البطل:

الآن يمكننا أن نحصل على مستويات متعددة ويمكننا أيضًا أن نسلّم البطل بعد موته.

يمكنك إنشاء العديد من المستويات كما تريد ، أو حتى إنشاء جهازي greenDoor في المستوى الذي يعود أحدهما إلى المستوى 1-1 إذا حل اللاعب لغزًا بطريقة خاطئة.


معارك بوس

لقد حان الوقت لتنفيذ الرئيس نفسه. لجعل مستوى رئيسه هو بسيط مثل جعل مستوى آخر الذي سوف تفرخ رئيسه بدلا من الأعداء العادية.

الجزء الصعب هو خلق الذكاء الاصطناعي للمدرب لأن كل رئيس سيكون لديه منظمة العفو الدولية الفريدة. ولكي نجعل من السهل فهم وتكرار الكثير من الرؤساء ، فإنني سأجعل من رئيس منظمة العفو الدولية يعتمد على الوقت بعد أن يتم إنتاجه. مما يعني أنها ستفعل A لـ x ثانية ، ثم تتغير إلى B لـ y ثانية ثم تقوم بـ C لمدة دقيقة z قبل أن تعود إلى A. سيبدو pseudocode كما يلي:

chapter 3 - boss AI

تعريف وظائف اطلاق النار رئيس أدناه. لا تتردد في تغييره ليتناسب مع ما تريده لمحاربة قتال:

الأمر متروك لك لإضافة الاختلافات بالرصاص لروتين رئيسه. المتغيرات المستخدمة من قبل كائن العدو الرئيسي هي نفسها ككائن العدو ، باستثناء أن الرؤساء لا يستخدمون العدو ومتغيرات shotAI ، حيث سيتم التعامل مع كليهما في حالة وجود كتلة فوق حسب الوقت المنقضي.

أعداء بوس لديهم أيضا متغير أن كائنات العدو لا. يطلق عليه rewardShot ، وهي سلسلة. يحمل هذا المتغير اسم اللقطة التي سيحصل عليها اللاعب بعد هزيمة رئيسه (تلك الموجودة في متغير مصفوفة shotArr).

هذا سيسمح للاعب "بتعلم" هجوم المدير كما هو موضح في وقت سابق. لإضافة هذا النوع من اللقطات إلى مجموعة لقطات اللاعبين ، سنحتاج إلى إضافة الشفرة التالية بعد وفاة العدو:

لتنفيذ أنواع إضافية من التذييلات لكي يستمتع بها لاعبوكم ، كل ما عليك فعله هو إضافة الشفرة المناسبة لكل مكافأة إطلاقها ، تمامًا كما فعلنا سابقًا.


تهانينا!

لقد قمت بإكمال البرنامج التعليمي الخاص بي حول كيفية إنشاء لعبة platformer تشبه لعبة Metroidvania تشبه لعبة Megaman في Construct 2. والبقية هي بناء اللعبة بناءً على ما تعلمته هنا لجعله ملكًا لك. إضافة المزيد من أنواع العدو ، والمزيد من المستويات ، بووروبس وأكثر من ذلك. حظا جيدا و استمتع.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.