‫أهلا ومرحبا.
‫في هذه المحاضرة ، سننظر في وظيفة خاصة تسمى المُنشئ الذي يسمح
‫لنا بإعطاء قيم افتراضية للخصائص في صفنا.
‫وسنرى عندما يتم استدعاؤها في المحرر.
‫دعنا نتعمق ونكتشف.
‫الآن ، مع مكون المشغل هذا ، أود إضافة وظيفة مكون التجزئة هنا حتى نتمكن من التحقق
‫من المكونات ، والجهات الفاعلة الأخرى التي تتداخل حاليًا مع مكون المشغل هذا ويمكننا
‫التنشيط إذا كان هو النوع الصحيح من الممثلين.
‫المشكلة ، حسنًا ، سنرى ما هي المشكلة.
‫دعونا نحاول تنفيذ وظيفة التجزئة.
‫إذا انتقلنا إلى الاستيلاء H لمعرفة الشكل الذي يجب أن يبدو عليه إعلان وظيفة مكون التجزئة
‫، فيجب أن يكون في القسم العام.
‫إنه فراغ افتراضي ، مكون علامة ، زمن دلتا.
‫هناك الكثير من المعلمات ، لذا دعنا ننسخها فقط.
‫انتقل إلى رأس مكون التجزئة ، وأضفه أسفل بدء التشغيل ، ثم سنقوم بنسخ هذا التعريف
‫، وتوليه إلى مكون المشغل الخاص بنا.
‫CP والشيء الوحيد الذي نلاحظه هو أن هناك بضع كلمات رئيسية هنا يمكننا إزالتها.
‫يمكننا إزالة الكلمة الأساسية الافتراضية.
‫هذه قاعدة عامة يمكننا اتباعها.
‫يمكننا أيضا إزالة تجاوز الكلمة الأساسية.
‫هذه أشياء لا يلزم أن تكون في ملف C ++.
‫نحن بحاجة إلى إضافة اسم الفصل.
‫لذلك تقوم بتشغيل القولون المكون.
‫القولون.
‫ثم نستبدل الفاصلة المنقوطة ببعض الأقواس ونحتاج إلى إجراء استدعاء لمكون التجزئة الفائق.
‫لذلك لأن هذه مكالمة طويلة جدًا ، سأقوم بنسخها من جهاز CP الخاص بنا وألصقه في هذا.
‫الآن ما يفعله هذا هو أنه يستدعي بشكل أساسي وظيفة مكون التجزئة للوالد.
‫إذن فالوالد في هذه الحالة هو مكون الصندوق الخاص بنا.
‫لذلك من المهم استدعاء ذلك في حالة وجود أي وظيفة هناك يجب استخدامها وتمكينها حتى يعمل
‫هذا المكون.
‫إذا لم نفعل ذلك ، فإننا في الأساس نتجاوز أيًا من تلك الوظائف ويمكن أن تتعطل الأشياء.
‫لذلك من المهم جدًا أن تتذكر دائمًا الاتصال بـ super عندما ننفذ مكون البدء واللعب
‫والعلامة.
‫لنقم الآن بنسخ رسالة السجل الخاصة بنا من بدء اللعب ووضعها في مكون التجزئة.
‫وبدلاً من قول تسجيل مكون التجزئة والقول إن مكون التجزئة يعمل هنا وسنمضي قدمًا ونقوم بالتجميع ونرى
‫ما إذا كانت هذه العلامة تعمل بالفعل بمجرد انتهاء المترجم ، دعنا نمضي قدمًا
‫ونضرب التشغيل ، وافتح مخرجاتنا تسجيل و.
‫حسنًا ، لا شيء يحدث الآن.
‫والسبب في ذلك هو أنه من ناحية التحسين ، يتم إيقاف تشغيل العلامة تلقائيًا وغير الواقعية
‫لمعظم المكونات.
‫لذلك عادةً ما يتم تشغيله من قبل الممثلين بشكل افتراضي ، لكن المكونات عادةً ما يتم إيقاف تشغيلها.
‫لذا في الحقيقة ، إذا نظرنا إلى بعض المكونات الأخرى التي لدينا مثل حركتنا التي نعلم أن وضع
‫العلامات يعمل من أجلها ، يمكنك أن ترى أنه يوجد هذا في أعلى الملف.
‫يمكنك نقل وظيفة ولديها علامة التجزئة للمكون الأساسي ، يمكن أن تكون النقطة B في أي وقت تساوي صحيحًا إذا لم
‫تقم بتعيين هذه الخاصية على الفئة.
‫لذا فهذه خاصية للفئة كخاصية لعلامة التجزئة للمكون الأساسي الكلاسيكي وهي بنية
‫تحتوي على خاصية B يمكن تحديدها من أي وقت مضى داخلها.
‫إذن ما نفعله هنا هو أننا نضع هذه القيمة الافتراضية على فئة المحرك عندما نبنيها.
‫هذا ما هي هذه الوظيفة.
‫يطلق عليه مُنشئ وهو دالة يتم استدعاؤها عندما نقوم بإنشاء مكون محرك جديد لتعيين القيم الافتراضية
‫تلقائيًا ، يمكننا تعيين بعض القيم الافتراضية في ملف الرأس كما فعلنا مع يجب
‫نقل وقت النقل.
‫لكن البديل عن القيام بذلك في ملف الرأس هو أنه يمكننا بالفعل تعيين هذه الخصائص
‫في المنشئ.
‫الآن أود أن تلاحظ بناء الجملة هنا ننتقل إلى نقل ملف الرأس.
‫يمكنك أن ترى أن المُنشئ تمت تسميته تمامًا مثل الفئة.
‫لذا فإن محركك هو اسم الفئة لمكون المحرك الخاص بنا ويسمى مُنشئه أيضًا إشعار المحرك.
‫ليس لديها نوع العودة أيضا.
‫ليس من المنطقي إعادة أي شيء لأننا نقوم ببناء كائن جديد.
‫نحن فقط نجعل هذا الفصل يحدث.
‫لذلك كل ما نحتاجه هو الوصول إلى خصائص هذه الفئة ونلاحظ أيضًا أنه تم تعيينها للجمهور.
‫لذلك فهو موجود في القسم العام من تعريف الفصل لدينا.
‫لذلك أود أن أتحداك لتمكين وضع العلامات لنفسك.
‫لذلك ستنشئ مُنشئًا في الرأس وتضع في اعتبارك أن بناء الجملة الذي رأيناه في
‫كل من المحرك H والاستيلاء على الكثير من H ، ستقوم بتمكين وضع العلامات كما رأينا مرة أخرى في تلك المكونات
‫الأخرى في ملفات CP الخاصة بهم.
‫لذا يمكنك فقط نسخ كيفية القيام بذلك.
‫يمكنك تسجيل الدخول من المنشئ أيضًا لمحاولة معرفة متى يتم استدعاؤها؟
‫هل هو مثل بدء اللعب؟
‫أم يتم استدعاؤها قبل بدء اللعب أم ماذا؟
‫اذهب وأوقف الفيديو واذهب.
‫كاي.
‫مرحبًا بعودتك.
‫لذلك سننتقل إلى مكونات المثلثات الخاصة بنا ، والتي ستنشئ قسمًا عامًا جديدًا هنا.
‫نتذكر النقطتين في النهاية ثم نحتاج إلى تسميته تمامًا مثل الفصل.
‫لذلك هذا ليس عنصر الزناد.
‫لا تقوم بتشغيل المكون بالكامل.
‫ومن ثم ليس لدينا أي حجج لهذا المنشئ ، لذلك نضع أقواسًا فارغة فقط ثم فاصلة منقوطة
‫في نهاية السطر.
‫الآن يمكننا الانتقال إلى ملف CPP ويمكننا إجراء التنفيذ هنا.
‫مرة أخرى ، لا نحتاج إلى نوع إرجاع.
‫إذاً ، فقط تقوم بتشغيل مكون القولون ، القولون ، تقوم بتشغيل المكون بشكل متكرر بعض الشيء ، ولكن هذه هي الطريقة التي
‫يعمل بها.
‫ثم نضع بعض الأقواس المتعرجة وهنا يمكننا القيام بأي من كود الإعداد الخاص بنا لإعطاء القيم الافتراضية
‫لمثيل الفصل.
‫لذلك إذا انتقلنا إلى الاستيلاء على CPP وألقينا نظرة على ما يفعله ، يمكنك أن ترى أنه
‫قد حصل على مكونه الأساسي ، يمكن أن تكون النقطة B مساوية لـ true.
‫لذلك دعونا نكتب ذلك.
‫العنصر الأساسي علامة النقطة ب يمكن تحديد أي وقت مضى.
‫B هي مجرد بادئة نستخدمها غالبًا عندما يكون للأشياء نوع منطقي يساوي true مع حرف t صغير.
‫لذلك نظرًا لأن التغييرات التي يتم إجراؤها على المُنشئ لا يتم دائمًا نشرها بشكل صحيح في الترميز المباشر
‫، سأغلق المحرر.
‫سأقوم بإعادة البناء من داخل كود Visual Studio ، ثم سأعيد التشغيل من ملف مشروع الاتحاد الأوروبي.
‫عند الانتهاء من ذلك ، سأقوم بالضغط على التشغيل ، وإلقاء نظرة على سجل الإخراج لدينا وبالتأكيد
‫، يمكننا أن نرى أن مكون المشغل يعمل.
‫لذلك سأقوم بإزالة رسالة السجل هذه لأنها مزعجة وأغلق سجل الإخراج في كود Visual
‫Studio ، وقم بإزالة رسالة السجل هذه في مكون التجزئة.
‫يمكننا أن نرى أنه يعمل الآن.
‫وما أردنا فعله هو عمل سجل في المُنشئ الخاص بنا.
‫لذا ، لنقم بسجل جديد يقول الإنشاء ، ونرى ما إذا كان بإمكان البرمجة الحية أن تلتقطها هذه المرة
‫، ثم سنذهب إلى سجل الإخراج ونلقي نظرة على الفور.
‫لا شيء يظهر هنا.
‫حسنًا ، إذا تقدمت وضغطت على التشغيل ، فإني ألقي نظرة على سجل الإخراج الخاص بي.
‫أستطيع أن أرى رسالة السجل التي مفادها أن مكون المشغل على قيد الحياة وقبل ذلك بوقت طويل.
‫في الواقع ، يمكنك أن ترى أنه يبني الطريق إلى الأمام عندما يكون مجرد إنشاء العالم.
‫يبدأ البناء في وقت مبكر جدًا قبل أن نبدأ اللعب بشكل واضح لأننا نحتاج إلى تجهيز العالم
‫كله قبل أن نبدأ اللعب.
‫هذا يحدث عندما نضغط على زر التشغيل ، ولكن في الحقيقة يحدث هذا أيضًا في المحرر.
‫لذلك إذا قمت بتحديد أحد الممثلين هنا ثم قمت بإضافة مكون إليه وإضافة المشغل الخاص بنا ، فقم بإلقاء نظرة على سجل
‫الإخراج الخاص بي.
‫ثم يمكنك رؤية الرسالة الإنشائية تمت طباعتها بالفعل.
‫لذلك نحن بحاجة إلى توخي الحذر فيما نفعله في المُنشئين لدينا لأنهم في الواقع يطلق عليهم رمز C ++ ، يتم استدعاءه
‫فقط عندما نقوم بالتحرير ، ولا حتى أثناء لعب لعبتنا.
‫يتم إنشاء هذه الكائنات وبالتالي إعدادها وبالتالي تحتاج إلى استدعاء مُنشئها.
‫سأمضي قدمًا وأحذف المشغل مرة أخرى وقم بإزالة المشغل قليلاً عن طريق إزالة
‫رسالة سجل الإنشاء ورسالة سجل بدء التشغيل أيضًا.
‫أشياء عظيمة.
‫لقد رأينا في هذه المحاضرة كيف يمكننا إعداد المكونات الخاصة بنا بحيث تكون متطابقة تقريبًا
‫مع المكونات التي تم إنشاؤها في قوالب مكونات المشهد ومكونات ACT ، رأينا
‫كيفية استخدام المُنشئ لإعطاء القيم الافتراضية إلى خصائص في صفنا.
‫سأراك في المحاضرة القادمة.