‫في هذه المحاضرة ، سنقوم بتجميع وحدة تحكم اللاعب التي ستتلقى معلومات تفيد
‫بأن اللعبة قد انتهت من وضع اللعبة وسوف نخلق سلوك إعادة التشغيل هذا بعد 5 ثوانٍ يعيد
‫تحميل المستوى بعد وفاة اللاعب.
‫دعنا نتعمق ونرى كيف يتم ذلك.
‫لذلك عندما تنتهي اللعبة بالفعل ، نحتاج إلى إخطار وحدة التحكم في اللاعب لدينا ونحتاج أيضًا إلى وجود وحدة
‫تحكم في اللاعب في C ++ لدينا حتى نتمكن من تنفيذ السلوك الذي يسمح لنا بإعادة تشغيل المستوى وما
‫شابه.
‫لذا فإن أول شيء يجب القيام به هو عندما يتم القضاء على هذه النقطة ، أولاً وقبل كل شيء ، نقوم فقط بتسجيل الدخول بشكل عشوائي.
‫نريد التحقق مما إذا كانت اللعبة قد انتهت أم لا.
‫الآن ، هناك نوعان من السيناريوهين.
‫الأول حيث نفوز والآخر حيث نخسر.
‫الخسارة هي الأولى التي سأعالجها لأنها أسهل.
‫إذا كان البيدق المقتول هو اللاعب الذي تخسره ، فهذا كل شيء.
‫قد تختار أن تكون لديك حياة متعددة بتكرارات مختلفة لوضع اللعبة هذا ، لكنني لن أفعل
‫ذلك.
‫سأعيش حياة واحدة فقط.
‫إذا مت ، تنتهي اللعبة.
‫قد ترغب في إعادة التشغيل.
‫فكيف نتحقق مما إذا كان هذا البيدق هو وحدة تحكم اللاعب؟
‫حسنًا ، هذا واضح جدًا.
‫يمكننا فقط عمل طاقم الممثلين ، لذلك سنقوم بتمثيل وحدة تحكم اللاعب ولقتل البيدق.
‫وبعد ذلك إذا لم يكن هذا باطلًا.
‫لذلك دعونا نأخذ المؤشر ، مؤشر تحكم اللاعب ، ونسميه وحدة تحكم المشغل ونخزن نتيجة
‫هذا المؤشر هنا.
‫وسنقول بشكل أساسي إذا لم يكن هذا فارغًا ، لذلك إذا لم تكن وحدة تحكم اللاعب مؤشرًا فارغًا ، فإننا نعلم
‫أن اللاعب مات وأن اللعبة انتهت بالنسبة للاعب.
‫إذن ما نريد فعله هو استدعاء طريقة تحكم اللاعب.
‫لقد ألمحنا بالفعل إلى حقيقة أن هناك طريقة انتهت اللعبة.
‫دعونا نلقي نظرة على هذا.
‫إذا قمنا بإجراء تحكم P وألقينا نظرة على وحدة تحكم اللاعب وسنبحث عن لعبة قد انتهت ويمكنك أن ترى ما
‫يكفي من وجود طريقة افتراضية هنا تسمى اللعبة قد انتهت ويمكنك أن ترى أن هناك نهاية
‫تركيز اللعبة.
‫ما هو الفاعل الذي يجب أن نركز عليه في نهاية اللعبة افتراضيًا ، هذا مؤشر فارغ وربما هذا
‫ما سنستخدمه.
‫ثم نقول ، هل هذا هو الفائز؟
‫في الأساس ، عليك السماح للاعب بالتحكم ومعرفة ما إذا كان قد فاز أم لا.
‫ومن السهل تحديد ذلك في هذه الحالة.
‫لا ، لم يفعلوا.
‫لذلك سنقوم بإنهاء لعبة سهم تحكم اللعب ، ثم سأضع مؤشر فارغ لتركيز اللعبة النهائية
‫لأننا لا نحتاج حقًا إلى هذه الميزة ومن ثم فائز.
‫سيكون الأمر مجرد خطأ.
‫هذه ليست وحدة تحكم اللعب الفائزة لأنها التي ماتت للتو.
‫لذلك حان الوقت لبعض التحدي الذي يتعين عليك تنفيذه.
‫انتهت اللعبة في وحدة تحكم اللعب.
‫هذا يعني أننا بحاجة إلى إنشاء وحدة تحكم لاعب C ++ ، وإنشاء فئة فرعية للمخطط الخاص بها ، وتوليد هذه الفئة
‫الفرعية للمخطط بشكل افتراضي من وضع لعبتنا ، ثم تريد المضي قدمًا والتجاوز.
‫انتهت اللعبة ووضعت رسالة تسجيل هناك للتحقق من أننا وصلنا بالفعل.
‫انتهت تلك اللعبة في الوقت المناسب.
‫أوقف الفيديو واذهب.
‫تمام.
‫مرحبًا بعودتك.
‫الخطوة الأولى ، قم بإنشاء وحدة تحكم مشغل C ++ ، وقم بإنشاء فئة C ++ جديدة ، ثم اذهب وابحث عن دعونا نرى ، وحدة
‫تحكم اللاعب.
‫بعد ذلك ، سوف نسمي هذا وحدة تحكم لاعب مطلق النار.
‫انطلق وأنشئ هذا الفصل.
‫بمجرد الانتهاء من ذلك ، نريد الانتقال إلى المخططات الخاصة بنا وإنشاء فصل دراسي يستند إلى ذلك.
‫لذلك نريد وحدة تحكم لاعب مطلق النار حيث أن القاعدة تحدد ذلك وسنسميها وحدة تحكم
‫لاعب مطلق النار بشرطة سفلية.
‫هذا ليس مطلوبًا حاليًا ، ولكن لاحقًا ، سنرغب في ربط بعض أصول واجهة المستخدم
‫بوحدة التحكم في المشغل.
‫لذلك سيكون لدينا جاهزة هناك.
‫ثم سنذهب إلى صوت التنبيه ، والمزيد من وضع اللعبة وإرساء ذلك لأننا نريد تغيير فئة وحدة تحكم اللاعب الافتراضية
‫من وحدة التحكم في المشغل إلى وحدة تحكم لاعب مطلق النار بشرطة سفلية.
‫رائع.
‫ثم نريد تجاوز لعبتنا انتهت.
‫لذلك دعونا نرى ما إذا كنا ننتقل إلى وحدة تحكم اللاعب.
‫يمكننا أن نرى أن هذا في القسم العام.
‫ها هو التوقيع.
‫دعونا ننسخه.
‫انتقل إلى وحدة التحكم في لعب مطلق النار H وقم بإنشاء الجمهور.
‫إلى أن لعبة الفراغ الافتراضية قد انتهت.
‫رائع.
‫ولدينا تجاوز بالفعل لأنه تم تجاوز ذلك بوضوح من مكان إلى.
‫وبعد ذلك ما يمكننا القيام به هو أنه يمكننا المضي قدمًا وتنفيذه.
‫تحول التحكم p نريد الاتصال به للتذكر الفائق.
‫ونريد أن نفعل انتهت اللعبة هكذا.
‫ونريد أن نمر في تركيز نهاية اللعبة ويكون B هو الفائز ثم نريد تسجيل الدخول.
‫لذلك تقوم بتسجيل الدخول.
‫استخدم الماكرو الخاص بي هناك.
‫لقد انتهينا.
‫ستكون رسالة السجل التي تظهر في النهاية.
‫لذلك دعونا نجمع ونرى ما إذا كان هذا يعمل.
‫سنذهب إلى سجل الإخراج.
‫اضرب اللعب واذهب واقتل.
‫الصحة في الأساس تتراجع ببطء ومن ثم يجب أن نرى رسالة.
‫هل وصلتنا الرسالة؟
‫رقم.
‫لذلك دعونا نلقي نظرة.
‫ما هي وحدة تحكم اللاعب هنا؟
‫يبدو أن وحدة التحكم في لاعب التسطير السفلي للصفير هي الصحيحة.
‫لقد انتهينا من لعبة التجاوز.
‫الآن هنا اكتشفت خطأ.
‫الآن هذا شيء ربما لاحظه بعضكم وكان يصرخون على الشاشة هو أننا
‫هنا لدينا وحدة تحكم اللاعب التي نلجأ إليها وأنا أشعر بالارتباك مع
‫اللاعب الفعلي -.
‫لذا ما نريد القيام به هنا هو أننا نريد أن نقول الحصول على المتحكم في - الذي قتل.
‫لذا - حصلت على نقطة قتل ، احصل على وحدة التحكم Aron حتى يحصل السهم على وحدة تحكم ثم نريد إرسال ذلك إلى وحدة تحكم اللاعب
‫وإذا كان ذلك فارغًا ، حسنًا ، يجب أن ينجح ذلك.
‫لذلك دعونا نمضي قدمًا ونجرب ذلك.
‫انطلق واضغط على اللعب.
‫نقتل أنفسنا مرة أخرى.
‫وهذه المرة أيضًا لا نتلقى أي رسالة سجل.
‫وهذه المرة لسبب خفي.
‫هذا لأننا انفصلنا عن وحدة التحكم.
‫قبل أن نسمي هذا - اقتل.
‫لذلك عندما تحاول السيطرة - هذا في الواقع لاغٍ ، ليس هناك سيطرة - بعد الآن.
‫لذلك نحن بحاجة إلى القيام بهذا الإشعار قبل أن نقوم بالفصل من وحدة التحكم.
‫يتضمن ذلك الانتقال إلى أعلى الخط الذي يحصل على وضع لعبتنا.
‫لم أكن أعتقد أن ذلك سيكون مهمًا.
‫ولكن الآن بعد أن أفكر في الأمر بالفعل ، نعم ، بالطبع هو كذلك.
‫لذلك دعونا ننتقل إلى مستوانا ونلعب.
‫دعنا نذهب ونطلق النار عليه.
‫وبمجرد الانتهاء من ذلك ، يمكنك أن ترى أننا انتهينا من الطباعة كما نريد.
‫لذلك كان لدينا بعض الفواق على طول الطريق.
‫ليس خطأك إذا لم تحصل على ذلك في التحدي.
‫لقد فعلت كل شيء آخر حتى تلك النقطة.
‫هذا عظيم.
‫لذا آمل أن تكون قد جربت تصحيح ذلك ، لكن لا تقلق إذا علقت في هذه الأشياء.
‫آخر شيء أردت القيام به هنا هو إعادة تشغيل اللعبة على جهاز توقيت.
‫الآن ، الطريقة التي يمكننا بها القيام بذلك واضحة إلى حد ما لأن وحدة تحكم المشغل لديها بالفعل
‫طريقة إعادة التشغيل.
‫لذلك إذا ذهبنا وألقينا نظرة على هذا ، فيجب أن يكون مستوى إعادة التشغيل.
‫هذا هو الذي نريد الاتصال به ونريد القيام بذلك على جهاز توقيت.
‫لذلك استخدمنا مؤقتات من قبل للقيام بأشياء متكررة ، ولكن يمكننا أيضًا استخدامها لتأخير إجراء
‫بمقدار معين.
‫لذلك سأذهب إلى وحدة تحكم لاعب مطلق النار H وأنشئ خاصية خاصة هنا.
‫يمكن أن تكون ملكية خاصة لك والتي يتم تحريرها في أي مكان.
‫يطفو.
‫سيكون هذا تأخير إعادة التشغيل.
‫يمكنك أن ترى سبب حاجتنا إلى قاعدة مخطط لهذا بالفعل.
‫سأعطيها تأخير 5/2.
‫ثم سأنتقل إلى C ++ وسنرغب في الحصول على مدير مؤقت عالمي.
‫وبعد ذلك يمكننا القيام بذلك.
‫ثم نحن بحاجة لتضمين.
‫لذا قم بتضمين التجزئة وسيكون مدير المؤقت.
‫H ثم يجب أن نكون قادرين على استخدام عامل التشغيل DOT لأن نوع الإرجاع هنا هو
‫مرجع وسنقوم بعمل مؤقت محدد وهنا نحتاج إلى تمرير مقبض مؤقت.
‫لذلك في قسم خاص ، دعنا نذهب وننشئ واحدًا.
‫لذلك سيكون مقبض مؤقت F ، سأطلق عليه اسم مؤقت إعادة التشغيل مثل.
‫إذن ، سيكون هذا هو المقبض الذي نمرره إلى جهاز ضبط الوقت.
‫الشيء التالي الذي نحتاجه في التوقيع الخامس هنا هو في الواقع أن نحصل على الشيء الذي نريد الاتصال به ، والذي
‫سيكون هذا فقط.
‫وبعد ذلك ، أعتقد أنه يجب أن تكون الطريقة نفسها فقط.
‫لذلك يمكننا القيام بذلك عن طريق عمل علامة العطف.
‫ومن ثم فهي في الواقع الطريقة ، طريقة مستوى إعادة التشغيل ، التي نريد أن نطلق عليها والتي
‫تم تحديدها في وحدة تحكم اللاعب A.
‫لذلك وحدة تحكم لاعب.
‫كولين.
‫مستوى إعادة تشغيل Cullen ومن ثم نحتاج فقط إلى تجاوز التأخير الذي حددناه بالفعل على أنه تأخير إعادة
‫التشغيل.
‫افعل ذلك ، ضع فاصلة منقوطة في النهاية هناك ونأمل أن نعيد تشغيل أنفسنا بعد
‫5 ثوانٍ.
‫سنقوم الآن بجعل الاختبار أسهل قليلاً من خلال فتح بندقيتنا وجعلها أكثر
‫فتكًا.
‫لذلك سأذهب إلى الإعدادات الافتراضية ، وأحدث الضرر عند 50 ، لذلك سنقتل بطلقتين.
‫دعنا نذهب ونضرب اللعب.
‫نقتل أنفسنا بسرعة.
‫وبعد 5 ثوانٍ ، نأمل أن نعيد تشغيل المستوى الذي نعيد تشغيله ونعود إلى المستوى.
‫لذلك يعمل عداد الوقت الخاص بنا كما نتوقع.
‫الآن في الإصدارات الأحدث ، ستجد أنه بدلاً من إعادة التشغيل ، ما ستراه هو رسالة خطأ تبدو
‫مثل هذه وتتحدث عن فشل السفر وتقول شيئًا عن UUID و PID و sandbox و blah blah
‫blah.
‫حسنًا ، الطريقة التي يجب أن نتغلب بها على هذا عندما نحاول إعادة التشغيل ونريد التحقق مما
‫إذا كانت إعادة التشغيل تعمل أم لا ، هي أننا نذهب إلى قائمة النقاط ، والنقاط ، والنقاط بدلاً من قائمة التشغيل وعلينا
‫أن نلعب لعبة قائمة بذاتها.
‫إذا كنت تلعب كلعبة مستقلة ، فسيستغرق تشغيلها وقتًا أطول قليلاً ، لكن
‫إعادة التشغيل ستعمل كما هو متوقع.
‫ونرى المستوى معاد تحميله.
‫الآن ، من الواضح أنه لا يوجد الكثير من الدلائل على أن هذا سيحدث.
‫لذلك سنلقي نظرة على واجهة المستخدم في المحاضرات القادمة.
‫سأراك هناك.