موضوع الدرس

  • إنشاء لعبة
  • كشف التصادم

مقدمة

سوف نقوم بانشاء لعبة بسيطة أين يذهب اللاعب للبحث عن صديق له إختفى في متاهة و ذلك لتخليصه.

مكونات اللعبة

ما يلزمنا في هذه اللعبة:

  • صورة خلفية مرسوم عليها شكل المتاهة؛
  • كائن أول يتحرك بواسطة مفاتيح الأسهم؛
  • كائن ثاني الذي نريد إنقاذه.

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

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

إنشاء الخلفية

يمكن أن نسترد أي صورة متاهة تصلح أن تكون خلفية أو إستعمال محرر الرسم لرسمها من الصفر.

في هذا المشروع سوف نقوم برسمها:

أنشئ مشروع جديد.

أنقر على مصغرة الخلفية ثم على إيطار الخلفيات

أنقر على الزر تحرير الذي يفتح محرر الرسم.

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

maze-fw_opt

قم باستعمال مخيلتك لرسم متاهة بجودة و يمكنك التجوال في الأنترنت للحصول على بعض الأفكار.

لا تنسى أن تقلص من حجم الكائنين حتى يتناسبا مع عرض الطريق.

خوارزمية اللعبة

يتحرك الكائن الأول (الذي يبحث عن صديقه) عند الضغط على أزار الأسهم (راجع الملحق د).

هدفنا في هذه اللعبة هو:

  • تحريك الكائن الأول
  • الوصول إلى الكائن الثاني.

و تكون الخوارزمية لحل مسألة الحركة كالتالي.

عند النقر على العلم الأخضر

كررباستمرار

إذا ضغطت على مفتاح السهم الأيمن

إتجه يميناً

إنتقل 5 خطوات

إذا ضغطت على مفتاح السهم الأيسر

إتجه يساراً

إنتقل 5 خطوات

إذا ضغطت على مفتاح السهم إلى الأعلى

إتجه لأعلى

إنتقل 5 خطوات

إذا ضغطت على مفتاح السهم إلى الأسفل

إتجه لأسفل

إنتقل 5 خطوات

نترجم مباشرة الخوارزمية إلى المقطع البرمجي التالي. لاحظ أن المقطع البرمجي هو تقريبا صورة طبق الأصل للخوارزمية.

project-1-move-2_opt

لا تنسى أن تضغط على الزرright-left-sprite_optحتى لا ينقلب الكائن.

 

إضافة درجة صعوبة إلى البرنامج

حتى يكون برنامجنا مثير للإهتمام، سوف نضف درجة من الصعوبة و هي.

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

لاحظ أن للجدار لون خاص.

و تكون الخوارزمية كما يلي:

إذا تم لمس لون الجدار

عد إلى نقطة الإنطلاق.

نأخذ إحداثيات الكائن الأول قبل إنطلاقه و هي في حالتنا: س=218- ، ص = 157.

نعدل المقطع البرمجي كما يلي.

البرمجة بالتوازي و الوحدات النمطية

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

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

project-1-half_opt project1-move_opt

 

 

 

 

 

 

 

 

 

 

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

إضافات للمشروع

يمكن أن نحسّن هذا المشروع بإضافة:

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