سنتعلم في هذا المقال كيفية إنشاء مشروع يتوجب على اللاعب فيه إكمال عدة تحديات لإنقاذ مركبة فضائية من الخطر المحدق بها، باستخدام سكراتش!
سنعمل في هذا المشروع على:
- التحكم بوقت انتهاء حدث ما باستخدام كتلة كرّر حتى.
- استخدام عدة كتل ربط لإظهار خرج المتغيرات على الشاشة.
- استخدام عدة معاملات منطقية أو، وَ، ليسمع كتل الربط.
لنحصل على النتيجة التالية:
انقر على العلم الأخضر وساعد رائد الفضاء في إنقاذ المركبة الفضائية بإتباع التعليمات الظاهرة على المنصة!
هل تحتاج مساعدةً في حل اللغز؟ انقر على الأسهم للتنقل، ثم اضغط على الزر الأحمر خمس مرات. انتقل إلى مقدمة المركبة وحطّم الكويكبات قبل أن تصطدم بالمركبة، كل ماعليك فعله هو التصويب عليها بمؤشر الفأرة، ثم أحكم إغلاق باب حجرة القيادة بإدارة العجلة ثلاث مرات.
اقتباسمعلومة يوجد نوع من الألعاب يدعى غرف الألغاز أو غرف الهروب، ينص مبدأ هذه الألعاب على أنه على اللاعب حل اللغز للخروج من الغرفة أو الانتقال إلى الغرفة التالية، قد تكون هذه الغرف حقيقةً أو افتراضيةً، ولكن المبدأ واحد؛ وهو أن على اللاعب إتمام المهمة بأسرع ما يمكن.
إعداد غرفة اللغز
سنختار في هذه الخطوة خلفيةً مناسبةً لتكون غرفة اللغز، وسنضيف الشخصية والأدوات اللازمة للتحكم بها.
أولًا، افتح النسخة الأولية من المشروع في المتصفح، أو افتح نسخة سطح المكتب من برنامج سكراتش مع الاستعانة بملف تحدي إنقاذ السفينة الفضائية.
عند فتح النسخة الأولية، ستظهر لك حجرة قيادة المركبة الفضائية وبعض الكائنات. لاحظ أن الكائنات قد ثُبّتَ موضعها باستخدام كتلة اذهب إلى الموقع.
اختر الشخصية التي تراها مناسبةً لقيادة المركبة، هل تريد إضافة رائد فضاء بشري، أم تفضل مخلوقًا فضائيًا؟ أو حتى قطة! الخيار متروك لك!
ثانيًا، أضف شخصيتك الرئيسية من مكتبة الكائنات. اخترنا في مثالنا الكائن "Monet".
يمكنك تغيير حجم الكائن وموضعه باستخدام الكتل البرمجية، أو باستخدام نافذة الكائنات:
ثالثًا، أضف كائن السهم، بكتابة "arrow" في مربع البحث في مكتبة الكائنات. ثم أضف كتلة بث ليرسل الكائن، عند نقره، رسالة تخبر عن الاتجاه الذي يجب أن تتحرك به الشخصية الرئيسية:
انقر على النافذة المنزلقة لكتلة البث ثم انقر على خيار رسالة جديدة، واكتب الاتجاه:
رابعًا، ضاعف السهم بالنقر عليه بالزر الأيمن للفأرة، ثم اعكس اتجاهه من خيار الاتجاه في نافذة الكائنات، وسمّه باسم موافق لاتجاهه:
ثم أضف رسالة بث جديدة باسم اتجاه السهم:
خامسًا، كرّر الخطوة السابقة حتى تحصل على أربع أسهم، ثم ضع الأسهم في زاوية المنصة، كما يلي:
سادسًا، أضف الكتل التالية على الشخصية الرئيسية لتحريك الكائن عند نقر السهم وفقًا لاتجاهه:
أخيرًا، انقر على العلم الأخضر لتشغيل المشروع واختبر حركة الكائن عند النقر على الأسهم.
التحدي الأول
سنضيف في هذه الخطوة التحدي الأول الذي يتوجب على اللاعب اجتيازه، وهو ضغط زر الإنذار عدة مرات.
أولًا، أضف الكتل التالية لكائن زر الإنذار الأحمر بحيث يبقى ظاهرًا على المنصة وفي موضع ثابت:
ثانيًا، أنشئ متغيرًا جديدًا، بالنقر على كتل المتغيرات، ثم على خيار إنشاء متغير، وسمّه "مرات ضغط الزر" إذ سنخزن في هذا المتغير عدد مرات الضغط على الزر، لاستخدامها فيما بعد في برنامجنا:
ثالثًا، أضف الكتل التالية لتعيين العدد 0 كقيمة ابتدائية للمتغير :
رابعًا، أضف كتلة كرّر حتى ثم أضف معامل المساواة = من كتل العمليات داخل شرط كتلة التكرار، واسحب متغير عدد مرات ضغط الزر إلى داخله، كما يلي، وحدد عدد مرات الضغط التي تريدها:
خامسًا، أضف الكتل التالية للسماح للاعب بالضغط على الزر فقط عندما يكون كائن رائد الفضاء قريبًا من الزر:
علينا أن نجعل البرنامج ينفذ ما يلي:
- يزيد قيمة متغير مرات الضغط على الزر عندما تضغط الشخصية الرئيسية الزر وهي قريبة منه.
- يصفر قيمة المتغير عندما تضغط الشخصية الزر وهي بعيدة عنه.
وذلك بإضافة الكتل التالية:
اقتباسمعلومة: تحسب المسافة في برنامج سكراتش من منتصف الكائن، فإذا كان الكائن الذي اخترته ذو حجم كبير يجب أن يلامس مركزه مركز الزر.
انقر على العلم الأخضر لتختبر المشروع، وحرّك الكائن ليضغط على الزر، عدّل قيمة المسافة إن احتجت لذلك.
سادسًا، أضف كتلة قُل واسحب داخلها كتلتي اربط واسحب داخلها متغير مرات ضغط الزر، كما يلي:
لا تنسى إضافة مسافة بعد النص في كتلة اربط حتى لا تتداخل النصوص مع بعضها.
سابعًا، أضف كتلة قُل لإعلام اللاعب أن المهمة أنجزت بنجاح بعد الضغط على الزر 5 مرات:
أخيرًا، انقر على العلم الأخضر وأنجز المهمة الأولى لاختبار مشروعك.
التحدي الثاني
سنضيف في هذه الخطوة التحدي الثاني حيث يتوجب على اللاعب إحكام إغلاق مقبض الباب بتدويره عدة مرات.
ننصحك بنسخ الكتل التي استخدمناها في الفقرة السابقة والتعديل عليها لأنها تشبه الكتل التي سنستخدمها في هذه الفقرة.
أولًا، انسخ الكتل التي نفذناها في الفقرة السابقة إلى كائن المقبض، وذلك عن طريق سحب الكتل وإفلاتها فوق الكائن.
ثانيًا، أنشئ متغيرًا جديدًا وسمّه "عدد مرات تدوير المقبض"، ثم انقر على النافذة المنزلقة لكتلة اجعل واختر المتغير الجديد، كما يلي، وغيّره في باقي الكتل أيضًا:
ثم حدد عدد مرات التدوير التي ترغب بها، وغيّر النص في كتلة قُل:
ثالثًا، أنشئ متغيرًا جديدًا وسمّه "مقدار الاستدارة"، إذ يُعّبر هذا المتغير عن الزاوية التي سيستدير بمقدارها المقبض كما لو كان حقيقيًا، ثم أضف الكتل التالية لتصفير قيمته:
رابعًا، عدّل الكتل الخاصة بالكائن، وأضف كتلة استدر ليدور المقبض بمقدار 15 درجة عند النقر عليه إلى أن يكمل دورةً كاملة، فعند إتمامه عددًا معينًا من الدورات ينتهي التحدي بنجاح. في مثالنا اخترنا تدوير المقبض مرتين:
عندما يدور الكائن بمقدار360 درجة يكون قد دار دورةً كاملةً، إذًا سنضيف الكتل التالية لزيادة قيمة متغيرعدد مرات تدوير المقبض بمقدار 1 عندما تصبح قيمة متغير مقدار الاستدارة 360 درجة، ثم سنصفر قيمته ليبدأ العد من جديد:
خامسًا، انقر على العلم الأخضر واختبر المشروع، حرّك الكائن وانقر على مقبض الباب لإحكام إغلاقه.
لا تنسى أنه يمكنك تعديل بُعد الكائن عن المقبض وزيادته لتوفير الوقت،أو يمكنك تقريب الكائن من المقبض باستخدام الفأرة!
التحدي الثالث
يتوجب على اللاعب في هذا التحدي التخلص من الكويكبات التي تهدد أمان المركبة الفضائية.
أولًا، باستخدام الرسام في سكراتش ارسم مؤشرًا كالتالي، مستخدمًا الأداة الدائرية وأداة رسم الخطوط، ثم انقر على خيار جعل الشكل شفافًا الموضح أدناه، ثم اختر اللون الأحمر للإطار:
لتحصل على الشكل التالي:
كما يمكنك استخدام الشكل X للمؤشر، بكتابة Button في مربع البحث في مكتبة الكائنات.
ثانيًا، أضف الكتل التالية كي يتبع المؤشر الذي أنشأناه حركة مؤشر الفأرة:
انقر على العلم الأخضر واختبر حركة المؤشر. لاحظ أن المؤشر يتبع حركة الفأرة في جميع أرجاء المركبة! لا تقلق، سنصلح ذلك.
ثالثًا، أضف الكتل التالية بحيث يختفي المؤشر إذًا لم يكن ملامسًا لنافذة غرفة القيادة أو حوافها الخضراء:
شغل المشروع واختبر حركة المؤشر، جرب ما الذي سيحدث إذا أزلت شرط ملامسة اللون الأخضر؟
رابعًا، أضف بعض الصخور من مكتبة الكائنات لتكون بمثابة الكويكبات التي على اللاعب تدميرها، للسرعة ابحث عن "Rocks" في مكتبة الكائنات، ثم عدّل حجمها.
سنستعمل الآن كتل لبناتي الخاصة التي استعملناها في مشروع سابق، والتي تساعدنا على تنظيم الكتل البرمجية، وإعادة استخدام نفس الكتل مرارًا دون الحاجة إلى إعادة "كتابتها".
خامسًا، أنشئ لبنةً جديدةً وسمّها اذهب إلى الموضع، وذلك بالضغط على لبناتي من القائمة ثم على خيار إنشاء لبنة، وأضف تحتها كتلة اذهب إلى الموضع من كتل الحركة:
سادسًا، علينا أن نجعل الكويكبات تتحرك عشوائيًا فقط ضمن نافذة حجرة القيادة، أن أنها يجب أن تلامس كائن النافذة "port" بدون أن تلامس الحواف الخضراء للنافذة، سنستخدم لذلك المعامل المنطقي و لضمان تحقق الشرطين:
شغّل المشروع، أو انقر على لبنة التعريف، ولاحظ كيف أن الكويكبات تتحرك داخل المركبة! علينا إصلاح ذلك.
سابعًا، أضف تأثير الشبح لإخفاء الكويكبات أثناء تحركها، ثم أضف كتلة إزالة المؤثرات الرسومية، كما يلي:
يجب أن يتمكن رائد الفضاء من التصويب على الكويكبات فقط عندما يكون جالسًا على كرسي القيادة، إذًا علينا تعديل برنامجنا.
ثامنًا، أضف الكتل التالية للتحقق من موضع رائد الفضاء:
تاسعًا، أضف الكتل التالية إلى كائن الكويكبات لتحديد متى يجب أن تنتهي المهمة:
الآن أضف كتلة إذا واسحب داخل شرطها المعامل المنطقي و للتحقق من أن الرائد يجلس على كرسي القيادة، و أن المؤشر يلامس الكويكبات، فإذا تحقق الشرط يجب زيادة قيمة متغير الكويكبات بمقدار 1 واستدعاء لبنة اذهب إلى الموضع كي يظهر الكويكب في موضع جديد:
عاشرًا، استخدم كتلة قُل لإعلام اللاعب عن عدد الكويكبات التي دمرها وذلك بربط النص مع خرج المتغير، ثم أضف كتلة قُل أخرى لتهنئة اللاعب على إتمام المهمة بنجاح:
أخيرًا، شغّل المشروع وصوّب على الكويكبات لتدميرها، وتلذذ بطعم النجاح في إنقاذ المركبة!
ترقية المشروع
إليك بعض الإقتراحات لتطوير مشروعك حين يتسنى لك ذلك:
- إضافة المزيد من الكائنات.
- إضافة تحدٍ يقتضي إكمال جميع التحديات بوقت محدد.
- التعديل على الأجزاء الثابتة في الخلفيات وجعلها كائنات، كما في المثال التالي المشابه لمشروعنا ، إذ أُزيلَت المقابض من خلفية السفينة الفضائية، وأُضفَيت ككائنات منفصلة (الصور مرفقة في ملف تحدي إنقاذ السفينة الفضائية)، ثم أُضيفَ تحدٍ جديد لتحريكها:
ختامًا
بهذا تكون قد أتممت مشروع تحدي إنقاذ السفينة الفضائية من الخطر باستخدام سكراتش.
ننصحك بتنفيذ مشروع تصميم وتنفيذ برنامج لإنشاء رسومات الماندالا باستخدام سكراتش كخطوتك التالية. وإذا واجهت مشاكل مع برنامج سكراتش فيمكنك الحصول على الدعم والمساعدة عبر إضافة سؤالك في قسم الأسئلة والأجوبة في أكاديمية حسوب؛ ولا تنسى مشاركتنا مشروعك على مجتمع سكراتش في منصة حسوب IO.
ترجمة -وبتصرف- للمقالPuzzle Room من الموقع الرسمي لراسبيري باي.
أفضل التعليقات
لا توجد أية تعليقات بعد
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.