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