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