‫حسنا.
‫لذلك في هذه المحاضرة ، ستتعرف على البث المتعدد والمندوبين والأحداث.
‫لذلك دعونا أولاً نستكشف المشكلة.
‫تخيل أننا نطور لعبة فيديو من الصفر.
‫الكود الخاص بنا عبارة عن مزيج من مكتبات الرسومات والصوت ومنطق مشغلنا.
‫لذلك دعونا نبدأ في ترميزها.
‫ضع في اعتبارك الفئات البسيطة التالية.
‫لذلك أولاً وقبل كل شيء ، لدينا فئة العرض هذه التي نريد في بداية اللعبة تمكين محرك العرض
‫والبدء في رسم العناصر المرئية.
‫لذلك سوف يتم تقديمه ثم يبدأ في رسم العناصر المرئية.
‫وأيضًا عندما تنتهي اللعبة ، نريد إيقاف محرك العرض الخاص بنا.
‫إذن لدينا طريقة تجاوز هذه اللعبة والتي ستوقف محرك التقديم.
‫لذلك أنا هنا فقط أستخدم عبارات الخط الصحيح لوحدة التحكم.
‫سيكون هذا بالطبع رمزًا أكثر تعقيدًا وسيؤدي ذلك في الواقع إلى شيء ما.
‫في حالتنا ، نحاول فقط فهم مفهوم مندوبي البث المتعدد وكذلك الأحداث.
‫لهذا السبب سنقوم فقط بعرضه عبر بيان خط أحمر على وحدة التحكم.
‫هذه هي فئة العرض لدينا.
‫الآن دعونا نلقي نظرة على فئة نظام الصوت لدينا.
‫إذن هنا في النظام الصوتي ، لدينا أيضًا طريقة لعبة dart هذه والتي ستبدأ فقط في تشغيل النظام الصوتي
‫وتشغيل بعض الصوت.
‫ثم لدينا طريقة تجاوز اللعبة والتي ستوقف نظام الصوت بشكل أساسي.
‫ثم أخيرًا لدينا لاعب ولديه اسم لاعب ولدينا هذا المُنشئ البسيط حيث قمنا بتعيين
‫هذا الاسم بناءً على ما تم تمريره إلى الكائن الذي تم إنشاؤه.
‫وهنا لدينا أيضًا لعبة البداية بالإضافة إلى اللعبة على الطرق.
‫إذاً هذا الشخص سوف يفرخ اللاعب بمعرف وهذا الشخص سوف يقوم فقط بإزالة
‫اللاعب بهذا المعرف المعين الذي قمنا بتعيينه كاسم اللاعب.
‫هذه هي فصولنا الثلاثة وسأبقيها بسيطة إلى حد ما مع هذه.
‫لذلك ، دعنا ننتقل إلى طريقتنا الرئيسية.
‫لذلك داخل طريقتنا الرئيسية ، سنقوم الآن بإنشاء كائنات من تلك الأنظمة.
‫لذلك أولاً وقبل كل شيء ، النظام الصوتي ثم محرك العرض ، بسيط جدًا ، مجرد أشياء بسيطة
‫هنا.
‫ثم نقوم أيضًا بإنشاء لاعبين مع المعرّف.
‫إذن لدينا هذا اللاعب الأول وهو CAO ، ثم اللاعب الثاني ، والذي سيكون دي سيلفا.
‫لذلك نحن بحاجة إلى بدء تشغيل محرك العرض ونظام الصوت الخاص بنا ونشر اللاعبين من خلال استدعاء
‫طريقة بدء اللعبة من كل فئة.
‫لذلك دعونا نفعل ذلك فقط.
‫وسأفعل ذلك بهذه الطريقة.
‫لذلك سأقول فقط النظام الصوتي ، بدء تشغيل محرك عرض اللعبة ، لا تبدأ تشغيل لاعب اللعبة الأول واللاعب
‫لبدء اللعبة كل منهما.
‫ثم نقول فقط أن اللعبة قيد التشغيل ، اضغط على أي مفتاح لإنهاء اللعبة.
‫لذا ما نريد فعله الآن هو أننا نريد إنهاء اللعبة بشكل أساسي بمجرد ضغط اللاعب على الزر.
‫لذلك سيكون بالطبع أكثر تعقيدًا.
‫لنفترض أن المشغل يضغط على الكل من أجل أو في قائمة الخيارات.
‫يغلق اللعبة ، ثم يتم تشغيل الكود التالي.
‫لذا فإن الكود التالي سيكون بالطبع استدعاء لعبة النظام الصوتي ، وطريقة تقديم لعبة المحرك على الطريقة بالإضافة
‫إلى اللاعب الأول واللاعب الثاني تلك اللعبة على الطرق.
‫لذلك دعونا نعتني بذلك.
‫دعنا نضيف ذلك هنا أيضًا.
‫وبالمناسبة ، سنحتاج إلى بيان قراءة لأنه بخلاف ذلك سيغلقه مباشرة.
‫لذلك اسمحوا لي أن أضيف بسرعة بيان قراءة هنا حتى نتمكن من الضغط يدويًا على مفتاح لإغلاق كل
‫شيء ثم تنتهي اللعبة بشكل أساسي.
‫لذلك دعونا نجري هذا بسرعة كبيرة ونرى ما سيحدث.
‫لذلك نرى أن النظام الصوتي بدأ ، بدأ تشغيل الصوت ، وبدأ محرك العرض ، ونرى الآن
‫المرئيات ثم تفرخ المشغلات.
‫لذلك يتم تكاثر اللاعب الأول واللاعب الثاني.
‫الآن اللعبة جارية ويمكننا اللعب بها.
‫وبعد ذلك بمجرد أن نرغب في الانتهاء منه ، نضغط على مفتاح.
‫لذا سأضغط على مفتاح.
‫وترى محرك العرض متوقفًا ، وتوقف النظام الصوتي وأزلنا كلا المشغلين.
‫لذلك كان هذا جهدًا كبيرًا لإعداد هذا.
‫الآن أتخيل أنه يتعين علينا القيام بذلك مع الكثير من الأشياء ويمكن أن يحدث خطأان ،
‫أليس كذلك؟
‫لنفترض أننا أضفنا المزيد من الأنظمة ، ثم يصبح هذا الأمر أكثر تعقيدًا حتى ننسى بسهولة استدعاء طريقة
‫بدء اللعبة أو طريقة انتهاء اللعبة.
‫أو الأسوأ من ذلك ، يمكننا استدعاء إحدى هذه الطرق مرتين ، مما قد يتسبب في جميع أنواع المشكلات ويتطلب
‫منا وضع الكثير من التعليمات البرمجية الوقائية.
‫لذلك علينا أن نتأكد حقًا ، هل هذا الكائن حي؟
‫هل سميت هذه الطريقة أم أنها سمتها بهذه الطريقة وما إلى ذلك ، طريقة معقدة للغاية.
‫وهنا يأتي دور مندوبي البث المتعدد.
‫مفوض الإرسال المتعدد هو مفوض يعمل كقائمة حيث يمكنه تخزين مرجع لأكثر
‫من طريقة واحدة ، وهذا هو الأساس.
‫حسنًا ، هذا يبدو معقدًا نوعًا ما ، لكن دعونا نبنيه ومن ثم ربما يكون أكثر منطقية.
‫لذلك دعونا ننشئ فئة ثابتة تسمى Game Event Manager.
‫لذا.
‫حسنا.
‫لذلك دعونا نمضي قدمًا وننشئ ملفًا جديدًا.
‫صف هنا.
‫وسأسمي مدير حدث اللعبة هذا.
‫حسنا.
‫لذلك سيكون لدى مدير حدث اللعبة هذا مفوض الآن.
‫لذلك سأقوم بإنشاء مندوب جديد يسمى حدث اللعبة.
‫لذلك لن يعيد أي شيء ، لكنه سيكون من النوع المفوض وسيكون عامًا حتى نتمكن
‫من استخدامه خارج هذا الفصل.
‫لذلك رأينا كيف يعمل المندوبون بشكل عام ، وسنستخدم هذا المندوب الآن للسماح
‫لنا بإضافة أكثر من حدث واحد بشكل أساسي إليه.
‫لنقم الآن بإنشاء المتغيرين المسمى عند بدء اللعبة وفي نهاية اللعبة ، وسيكونان من نوع حدث
‫اللعبة.
‫لذلك سيكونون من نوع مندوبنا.
‫لذلك سيكون هذا مندوبًا لحدث لعبة وسيكون هذا مندوبًا لحدث لعبة.
‫إذن لدينا متغيرا المندوبين هذين يمكننا استخدامهما الآن.
‫لذا عد إلى فصولنا الثلاثة.
‫دعنا نضيف لعبة البداية واللعبة على الأساليب إلى بداية اللعبة وفي اللعبة فوق المندوبين.
‫أيضًا ، ليست هناك حاجة لأن تكون هذه الأساليب عامة.
‫لذا دعنا ننتقل إلى النظام الصوتي والآن لنجعل هاتين الطريقتين خاصتين
‫لأننا لسنا بحاجة إلى كشفهما لأننا سنستخدم مُنشئ النظام الصوتي لإضافة الأحداث أو الاشتراك فيها.
‫لذا فإن أفضل مكان لإضافة أساليبنا إلى مندوبي مدير اللعبة هو من داخل المُنشئ
‫نفسه.
‫هذا ما نفعله هنا.
‫وعندما يتم إنشاء كائن ، ستتم إضافة طرقه تلقائيًا إلى المفوضين ، أو بعبارة
‫أخرى ، سيشتركون فيها.
‫إذن ما سيحدث الآن هو أن لعبة البداية وطريقة انتهاء اللعبة ستتم إضافتهما
‫إلى مدير حدث اللعبة في مندوب بدء اللعبة.
‫ونستخدم علامة الجمع يساوي هنا لنقول ، حسنًا ، نريد إضافة هذه الطريقة إلى مندوب الإرسال
‫المتعدد هذا.
‫لذلك نحن في الأساس نشترك فيه وننتظر أن يتم تشغيل هذا الحدث لأنه بمجرد أن يتم
‫تشغيل هذا الحدث ، سيتم استدعاء طريقتنا.
‫الشيء الرائع هو أنه يمكننا الآن فعل نفس الشيء مع فئة محرك العرض وفئة اللاعب.
‫ما يهم هنا هو أنني أستخدم علامة زائد يساوي وليس فقط علامة يساوي ، لذا فأنا لا أسندها.
‫وسنرى لاحقًا ما الذي يعنيه التوقيع وماذا سيفعله لنا.
‫ولكن هنا نحن فقط نضيف أخرى.
‫طريقة لجامعي الأحداث لدينا ، إذا جاز التعبير ، أو مدير الحدث لدينا.
‫لذلك فهو يجمع كل تلك الأحداث أو الأساليب التي يجب أن ينفذها بعد ذلك.
‫لذا فهو مندوب متعدد الممثلين.
‫الآن لنفعل نفس الشيء مع محرك العرض الخاص بنا.
‫أود أن تفعل ذلك بنفسك.
‫لذا قم بإيقاف الفيديو مؤقتًا سريعًا وحاول تعيين نفس الرمز أو إنشاء نفس الكود كما
‫فعلنا في نظام الصوت هنا.
‫لذا أولاً وقبل كل شيء ، تأكدت من أن أساليبي ستكون خاصة لأننا لسنا بحاجة إلى فضحها
‫بعد الآن.
‫نظرًا لأن هذا ليس ضروريًا ، فلن نتصل بهم أبدًا خارج هذا الفصل.
‫لهذا السبب من الجيد دائمًا جعلها خاصة.
‫ما يمكن أن نسميه ، مع ذلك ، هو المنشئ ، أليس كذلك؟
‫حتى نتمكن من إنشاء كائن لمحرك العرض لدينا كما هو عام.
‫لذا يمكننا الآن المضي قدمًا وإضافة طريقة بدء اللعبة إلى بداية اللعبة لمدير أحداث اللعبة
‫أيضًا.
‫وينطبق الشيء نفسه على اللعبة.
‫إذن ، نستخدم هنا أيضًا موجب يساوي.
‫لذلك نقول إننا نشترك في بداية اللعبة وفي اللعبة فوق الأحداث.
‫لذلك نقول بشكل أساسي أنه بمجرد تشغيل حدث بدء اللعبة.
‫تسمى أيضًا طريقة لعبتنا البداية.
‫لو سمحت.
‫من قبلنا أعني أن محركات التقديم تبدأ طريقة اللعبة.
‫لذلك سوف تسمي هذه الطريقة بعد ذلك.
‫وبالطبع إذا انتهت اللعبة ، فسيتم تسمية طريقة انتهاء اللعبة بهذه الطريقة هنا.
‫هذه هي الطريقة التي نستخدم بها هذا النهج.
‫الآن تحد صغير لك.
‫افعل نفس الشيء في فصل اللاعب من فضلك.
‫تمام.
‫أولا وقبل كل شيء ، أتمنى أن تكون قد نجحت.
‫حسنًا ، لن أتأكد أيضًا من أن هاتين الطريقتين ستكونان خاصتين لأنه لا يُفترض بأي شخص
‫استدعاء لعبة البداية وطريقة انتهاء اللعبة من خارجها.
‫ولكن بعد ذلك لدينا مُنشئ بالفعل هنا وسأستخدم المُنشئ هذا فقط للاشتراك في طرق
‫بدء اللعبة وفي نهاية اللعبة إلى أحداث بدء اللعبة والأحداث التي تسبق اللعبة.
‫حتى الآن في مدير حدث لعبتنا.
‫دعنا نضيف طريقتين ثابتتين عامتين لتشغيل الأحداث من الطريقة الرئيسية.
‫لذلك يمكننا هنا بعد ذلك.
‫Call of ، حسنًا ، نفذ هذا الحدث أساسًا لأنه الآن في هذه المرحلة ، حسنًا ، بعد إنشاء كل محركات
‫العرض وأنظمة الصوت والمشغلات هذه ، بمجرد أن يتم تشغيل هذا الحدث ، سيتم تنفيذ
‫شيء ما.
‫لكننا لم نقل حقًا ما الذي يجب أن يحدث إذا حدث ذلك.
‫لذلك إذا كان هذا الحدث سيتم تشغيله.
‫لذلك دعونا ننشئ طريقة ثابتة لبدء اللعبة.
‫لذلك ، ستتحقق هذه الطريقة هنا أولاً وقبل كل شيء مما إذا كان حدث بدء اللعبة ليس فارغًا ، مما يعني أن
‫هناك طرقًا أخرى اشتركت فيه بالفعل ، وهو ما سيحدث بشكل أساسي بمجرد إنشاء محرك العرض.
‫ويتم تنفيذ هذا الرمز هنا ، على سبيل المثال ، أو يتم إنشاء النظام الصوتي ويتم تنفيذ هذا
‫الرمز أو إنشاء المشغل ويتم تنفيذ هذا الرمز ، فستكون هذه العبارة هنا صحيحة.
‫لذلك لن يكون حدث اللعبة عند بدء اللعبة فارغًا ، مما يعني أنه لن يكون فارغًا.
‫وبعد ذلك سيتم تنفيذ هذا الرمز هنا.
‫لذا ما سيفعله الآن هو أنه سيقول أن اللعبة قد بدأت وبعد ذلك ستستدعي بدء اللعبة.
‫سيؤدي ذلك إلى تشغيل جميع الطرق التي تم الاشتراك بها في هذا الحدث.
‫وهذا يعني أنه بمجرد أن نطلق على هذه الطريقة هنا ، فإن حدث اللعبة هذا ، إذا جاز التعبير
‫، بمجرد أن نسميها يتم تنفيذ هذه الطريقة هنا.
‫يتم تنفيذ هذه الطريقة وكذلك سيتم تنفيذ هذه الطريقة ، وسنرى ذلك بعد قليل
‫أيضًا.
‫لذلك هذا هو بداية الزناد.
‫إذن هذه هي الطريقة التي سنقوم بتشغيلها.
‫وباستدعاء هذه الطريقة فقط وترى أننا نجعلها ثابتة كما فعلنا مع أحداث اللعبة نفسها ، لأننا
‫لسنا بحاجة إلى إنشاء مدير أحداث لعبة من أجل استدعاء هذه الأساليب.
‫لذلك هذا ما نريد تحقيقه ولهذا السبب نجعل هذا ثابتًا.
‫لذلك لا تحتاج إلى إنشاء كائن لاستدعاء هذه الأساليب ، ثم دعونا ننشئ طريقة
‫ثابتة أخرى للعبة الخاصة.
‫وأود أن أوصيك بإيقاف الفيديو مؤقتًا ومحاولة بناء نفسك الآن بسرعة كبيرة.
‫تمام.
‫لذلك أتمنى أن تكون قد نجحت.
‫إنه في الأساس نفس الشيء الذي فعلناه هنا ، لكنه الآن سيفعل ذلك مع نهاية اللعبة هنا.
‫لذلك لديّ هذه اللعبة العامة التي تم إطلاقها في الفراغ الثابت على الطريقة التي ستطلق الحدث وإذا لم تنته
‫اللعبة.
‫لذا ، إذا كانت هناك طرق تشترك في الحدث ، فلن يكون هذا خطأ ، وبعد ذلك سيكون صحيحًا بشكل أساسي ، مما يعني أنه
‫سيتم تنفيذ هذا الرمز وسيتم تنفيذ اللعبة عند انتهاء اللعبة
‫، مما سيؤدي بعد ذلك إلى استدعاء جميع أساليب اللعبة. أو كل الطرق التي خصصت أو اشتركت في هذه اللعبة فوق
‫الحدث ، مما يعني هذه الطريقة هنا بالإضافة إلى هذه الطريقة ، وأخيراً ، بالطبع ، هذه الطريقة.
‫الآن إذا أردنا إنشاء محرك جديد ، فلدينا الآن محرك التقديم ومحرك الصوت.
‫لنفترض أننا أنشأنا المحرك الثالث ، ثم لسنا بحاجة إلى استدعاء هذه الأشياء يدويًا بعد الآن ، لكننا
‫أرسلناها حتى نتمكن من إعدادها مباشرة في المحرك حيث نقول إننا نريد الاشتراك في هذا الحدث
‫والطريقة سيتم الاتصال تلقائيًا بمجرد بدء هذا الحدث.
‫حسنا.
‫الآن دعونا نلقي نظرة على الكود الخاص بنا بالطريقة الرئيسية ، لأن هناك الكثير مما يحدث هنا.
‫الآن ترى أن كل هذه التعليمات البرمجية لا تعمل بعد الآن ، بالطبع ، لأن كل طرق بدء اللعبة
‫هذه ، كانت عامة من قبل ، لكنها لم تعد كذلك الآن.
‫حتى الآن هم.
‫سيكون.
‫حسنًا ، إنها خاصة ، لذا فهي مغلقة.
‫فلنبدأ الآن ونتأكد من أننا نشغل حدث اللعبة هذا.
‫إذن لدينا هنا مدير حدث اللعبة وبدأنا لعبة الزناد هذه لأن هذا ما نريد القيام به في هذه المرحلة
‫، أليس كذلك؟
‫لذلك بمجرد أن يتم تجهيز جميع اللاعبين وجميع أنظمتك وكل شيء ، يمكننا المضي قدمًا وتشغيله.
‫والآن يمكننا أن نفعل نفس الشيء مع طريقة تجاوز اللعبة هنا.
‫لذلك دعونا نطلق اللعبة فوق الحدث هنا.
‫إذن ما سيحدث الآن هو أنه سيسمح لنا بالتأكد من أن لدينا رمزًا أبسط وأنظف
‫كثيرًا.
‫لذلك فهو يتأكد فقط من أن الكود الخاص بنا سيعمل بشكل لا تشوبه شائبة.
‫لنفترض الآن أننا أضفنا لاعبًا آخر إليها.
‫لا يتعين علينا التفكير في الأمر واستدعاء كل هذه الأساليب.
‫صحيح ، يُطلق عليه طريقة بدء اللعبة ، ويسمى طريقة تجاوز اللعبة وما إلى ذلك.
‫يمكننا المضي قدمًا وإنشاء هذا المشغل الجديد وسيتصل تلقائيًا بالطرق وفقًا لذلك.
‫لذلك ترى هنا أن اللعبة قد بدأت في تشغيل نظام الصوت وبدأت في تشغيل عرض الصوت
‫، ورسم المحرك ، والمرئيات ، ثم لا يزال يُطلق على اللاعب toggle silver و Dragon Dock.
‫فلنضغط الآن على زر.
‫ويمكنك أن ترى أن اللعبة قد انتهت.
‫توقف نظام الصوت.
‫توقف محرك العرض وقمنا بإزالة جميع اللاعبين.
‫هذه هي حقًا قوة مندوبي البث المتعدد.
‫سوبر ، مفيد جدا ، قوي جدا.
‫يمكننا أن نرى أن لاعب الكائن الثالث لدينا حصل على لعبة البداية وتجاوزت اللعبة
‫طرق تسمى تلقائيًا لأنه تم إخطار كائناتنا عند بدء تشغيل كل من الأحداث أثناء اللعب وفي اللعبة.
‫الآن عند استخدام المندوبين ، يمكن أن تسوء بعض الأشياء.
‫دعنا نرى أولاً بعض الأخطاء التي يمكن أن تكلفنا ساعات لإصلاحها.
‫دعنا نقول عن طريق الخطأ ، بدلاً من الاشتراك في طريقة لأحداثنا باستخدام علامة زائد يساوي ، دعنا ننتقل ،
‫على سبيل المثال ، إلى فئة اللاعب بدلاً من استخدام علامة الجمع يساوي.
‫سيكون لدينا عن طريق الصدفة ، فقط استخدام علامة المساواة.
‫لذلك لا يقول المترجم أن هذا خطأ لأن هذا ليس خطأ.
‫يمكنك أيضًا الكتابة فوق الحدث الحالي بطريقة واحدة فقط.
‫إذن ما نفعله هنا هو أننا نقول إن أي شيء آخر تم الاشتراك فيه في هذه المرحلة ،
‫سوف نتجاوزه.
‫وهذا ما يحدث هنا بشكل أساسي.
‫لذلك سنقوم بإزالة جميع الطرق المشار إليها في بداية اللعبة وفي اللعبة فوق الأحداث وتعيين كائن
‫اللاعب الأخير على وجه الدقة والذي تم إنشاؤه باعتباره الاشتراك الوحيد في كل هذه الأحداث.
‫أيضًا ، نظرًا لأن بداية اللعبة ثم انتهاء اللعبة علنية بالفعل ، يمكننا الاتصال بهم مباشرة
‫من أي مكان.
‫لنفترض أننا نريد الاتصال بمدير حدث اللعبة عند بدء اللعبة من هنا ، ثم يمكننا القيام بذلك أيضًا.
‫لنقم الآن بتشغيل الكود ويمكنك أن ترى.
‫لا يزال اللاعب الرياضي الذي يحمل الهوية يُدعى Dragon Silver Dragon Dong.
‫بدأت اللعبة في اللعب مع كلب تنين وتنين دونغ.
‫حسنًا ، تم تشغيل الحدث أولاً بواسطة برنامجنا Kes ثم من آخر لاعب لدينا ، والذي كان كلب التنين
‫لدينا ، أطلق عليه أيضًا On Game Start مرة أخرى.
‫هذا ما حدث هنا بشكل أساسي.
‫لذلك نحن حقا بحاجة إلى توخي الحذر هنا.
‫هذا شيء يمكن أن يكون من الصعب جدًا إصلاحه.
‫لذلك لا يمكننا الآن تحديد أحداثنا على أنها خاصة لأننا نحتاج إلى أن تكون عامة للاشتراك بها في
‫منشئي الفصول لدينا.
‫لذلك نحن الآن نستخدم حدث الاسم عند الحديث عن المندوبين لأن مندوبينا كانوا يتصرفون حرفياً
‫مثل الأحداث.
‫ولكن في الحقيقة هناك نوع خاص من المندوبين يسمى الأحداث ويتم صنعه لمنع هذا النوع من
‫الأخطاء.
‫حسنا.
‫الآن هناك كلمة رئيسية جميلة تساعدنا على منع هذا الخطأ ، وهذه هي الكلمة الأساسية للحدث ،
‫لأن هذا المندوب الذي أنشأناه في مدير أحداث اللعبة هنا ، هذا الحدث الدراسي
‫العام للعبة هو حدث.
‫لذلك كان بإمكاننا استخدام الكلمة الأساسية لهذا الحدث هنا وهذا سيمنعنا حتى من ارتكاب
‫هذا الخطأ لأنك الآن ترى أنه ليس سعيدًا بما فعلناه هنا حتى نتمكن من تجاوز المندوب.
‫ولكن عندما يتعلق الأمر بالأحداث ، يمكننا فقط الاشتراك فيها ولا يمكننا الاتصال بهذا الحدث مباشرةً.
‫سيتم تشغيله من مدير حدث اللعبة مباشرة حتى لا نتمكن من الاتصال بالحدث مباشرة.
‫نظرًا لأن Game Start أصبح الآن حدثًا ولن يُسمح لنا بالاتصال به إلا من داخل الفصل الذي
‫تم إنشاؤه فيه.
‫كما أنه يجبرنا على التعامل معها كقائمة.
‫لذلك لا يُسمح بوجود حدث على الجانب الأيسر من علامة التساوي.
‫لذا فإن شيئًا كهذا ، كما رأينا ، غير مسموح به.
‫حسنًا ، الآن ، إذا قمنا بتشغيل التطبيق مرة أخرى ، فسترى أنه يعمل بشكل لا تشوبه شائبة.
‫اسمحوا لي أن شغل الكود.
‫وسارت الأمور على ما يرام.
‫لذلك كان هذا مثالًا موجزًا تمامًا ومثالًا بسيطًا إلى حد ما لأننا نظرنا إلى المندوبين ومندوبي البث المتعدد والأحداث
‫في فيديو واحد.
‫لكن آمل أن يكون هذا الفيديو قد أوضح المزايا التي تتمتع بها عندما يتعلق الأمر بالعمل مع المندوبين والأحداث.
‫والشيء الرائع هو أنك رأيت الآن كيفية إنشاء مفوضين خاصين بك بالإضافة إلى الأحداث الخاصة
‫بك ، لأننا سنرى مجموعة من الأحداث لاحقًا عندما يتعلق الأمر باستخدام واجهة المستخدم.
‫على سبيل المثال ، عند النقر فوق شيء ما ، يتم تشغيل حدث ويمكن الاشتراك في عدة
‫أشياء.
‫يمكن أن تشترك طرق متعددة في هذا الحدث الذي تم تشغيله ثم يتم تنفيذه مرة واحدة ، على سبيل
‫المثال ، يتم النقر فوق الزر أو النقر فوق أي مفتاح على لوحة المفاتيح.
‫حسنًا ، دعونا الآن نلخص الأمر بسرعة.
‫الحدث عبارة عن شكل مقيد لمندوب يُجبر على التصرف كقائمة ، لذلك يمكننا فقط إضافة أو إزالة طرق منه
‫حتى نتمكن من الاشتراك أو إلغاء الاشتراك منه باستخدام علامة زائد يساوي أو ناقص يساوي ، ولكن
‫ليس علامة التساوي.
‫يسمح المندوب بالتعيين المباشر عبر المندوب الخاص بي يساوي أسلوبي.
‫يؤدي القيام بذلك إلى استبدال أي طرق أخرى تمت إضافتها إليه من قبل.
‫لذا كن حذرا هنا.
‫أيضًا ، لا يمكن استدعاء الأحداث إلا بواسطة الفصل الذي يعرفها من خارج الفصل الدراسي.
‫يمكنك فقط التسجيل والطرق غير المسجلة لهم.
‫حسنًا ، أتمنى أن تكون قد استمتعت بهذا الفيديو وقدمت لك فكرة جيدة عن الأحداث والمندوبين وأتمنى
‫أن أراك في الفيديو التالي.