‫أهلا ومرحبا.
‫في هذه المحاضرة ، سوف نجعل شرط الفوز يعمل حتى أتمكن من قتل كل الأعداء
‫في مستواي.
‫وسيظهر لي هذا الزجاج الأمامي.
‫يا هلا!
‫دعنا نتعمق ونرى كيف يتم ذلك.
‫لذلك نود أن يكون من الممكن للاعبنا الفوز بهذه اللعبة بالفعل.
‫في الوقت الحالي لا يمكنهم ذلك.
‫إذن كيف سنفعل ذلك؟
‫حسنًا ، يمكنك فعل ذلك بعدة طرق.
‫سيكون أحدهم عندما يتم استدعاء Pawn Killed وليس البيدق ليس وحدة تحكم اللاعب بل هو AI.
‫يمكننا أن نطرح من المتغير الذي يوضح عدد الذكاء الاصطناعي الموجود في العالم ، وكم يجب علينا قتلهم.
‫وبعد ذلك عندما ينخفض ذلك إلى الصفر ، يمكننا إنهاء اللعبة لصالح اللاعب.
‫ومع ذلك ، أعتقد أن هذا هش قليلاً لأنه يتطلب منا وضع عدد الأعداء في العالم
‫في مكانين.
‫بشكل أساسي ، يجب أن تكون في وضع اللعبة ، ولكن أيضًا يجب أن تكون في العالم عندما تقوم بإسقاط
‫الأعداء ويمكن أن يخرج هذان الشخصان عن المزامنة ، وسيؤدي ذلك إلى بعض المشاكل.
‫لذا فإن الطريقة التي أفضل القيام بذلك هي القول ببساطة ، دعنا نحسب كل الأعداء في العالم في كل
‫مرة يُقتل فيها بيدق ، فلنقم بإعادة الفرز ، وتعداد جميع الذكاء الاصطناعي ونرى أي منهم ما زال
‫على قيد الحياة .
‫إذا كان أي منهم لا يزال على قيد الحياة ، فلن ننهي اللعبة بعد.
‫في الأساس ، لم تنته اللعبة ، ولكن إذا ماتوا جميعًا ولم تنته وحدة التحكم في
‫اللعب ، فقد فاز اللاعب.
‫لذلك من أجل القيام بذلك ، نحتاج إلى طريقة للاستعلام عن وحدة تحكم اللاعب حول ما إذا كانت
‫ميتة أم لا.
‫آسف ، أعني ، وحدة تحكم الذكاء الاصطناعي.
‫لذلك دعونا نبحث عن مطلق النار لدينا.
‫تحكم AI.
‫وما نريد القيام به هنا هو إنشاء طريقة عامة جديدة تتيح لنا الاستعلام عما إذا كانت ميتة
‫أم لا.
‫لذلك سنقوم بعمل كرة ميتة وستكون مسابقة لأنه لا ينبغي أن تغير ما يحدث بالفعل
‫في وحدة التحكم عندما يتم استدعاؤها.
‫ويمكننا المضي قدمًا وإنشاء تطبيق.
‫الآن يجب أن نتحكم في - يمكن أن يخبرنا ما إذا كان ميتًا أم لا.
‫إذا ذهبنا وألقينا نظرة على ذلك مرة أخرى ، فإننا نلقي نظرة على شخصية مطلق النار ، وهي -.
‫تذكر ، لدينا بالفعل هذا ميت لا يمكن أن يعمل هناك.
‫لذا فإن ما نريد القيام به هو مجرد تمرير الطلب إلى مطلق النار الذي أتحكم فيه الآن.
‫نعم.
‫هناك شيء واحد يمكنك قوله في وضع لعبة KML ، يمكنك الحصول على وحدة التحكم ،
‫والاستيلاء على - ذلك الذي يتحكم ، والقيام بفيلم ثم التحقق مما إذا كان ذلك - ميتًا.
‫ومع ذلك ، هذا ليس أفضل ممارسة بشكل عام لأنه يعني أنه إذا تغير شيء ما فجأة حول كيفية
‫حساب الموت و / أو أن وحدة التحكم في الذكاء الاصطناعي ستتحكم في أنواع مختلفة من - ، فجأة نحتاج إلى
‫تغيير وضع اللعبة ، وهو ما لا يحدث. منطقي.
‫لذلك من الأفضل القيام بذلك والقيام بالتمرير داخل عنصر تحكم AI يكون أكثر قوة.
‫إنه يمنعنا من العبث داخل الأجزاء الداخلية لفصل شخص آخر ، مما يعني عمومًا أنه يمكننا تقييد عندما
‫تتغير الأشياء ، يمكننا تقييد عدد الفصول التي يتعين علينا الذهاب إليها والتطرق والتحديث
‫والتغيير ، وهو أمر جيد دائمًا.
‫لذا ما نريد القيام به هو الحصول على - وإلقاء - للتأكد من أنها شخصية مطلق النار.
‫لذلك دعونا نقوم بعمل طاقم الممثلين.
‫سيكون لمطلق النار.
‫حرف.
‫وأعتقد أننا سنحتاج إلى إجراء تجزئة متضمنة في الجزء العلوي من جهاز التحكم بالعين لدينا للتأكد
‫من معرفتنا بشخصية مطلق النار مثل ذلك.
‫وبعد ذلك سنقوم بعمل فريق التمثيل - وسنرغب في تخزين هذا في متغير حتى
‫يصبح مطلق النار.
‫يسمى مؤشر الحرف دعنا نسميه متحكم فيه.
‫حرف.
‫لا يمكنني أن أسميها حرفًا لأن هذا بالفعل متغير في وحدة تحكم الذكاء الاصطناعي ووضع فاصلة
‫منقوطة في نهاية السطر وسنتحقق مما إذا كان هذا فارغًا أم لا.
‫لذا فإن حرف التحكم لا يساوي المؤشر الفارغ ، لذا يجب أن نكون قادرين على الاستعلام عنه عن حالته فيما إذا
‫كان ميتًا أم لا.
‫لذلك يجب أن نكون قادرين على إعادة تلك الشخصية الخاضعة للرقابة.
‫مات.
‫بشكل أساسي ، نعيد توجيه طلب التحكم في الشخصية إذا كانت شخصية التحكم هذه شخصية مطلق النار.
‫ومع ذلك ، لاحظ هنا أنه ليس لدينا بيان إرجاع.
‫في الحالة الأخرى ، نحتاج إلى أن يكون لدينا عبارة إرجاع تحتاج دائمًا إلى أن تكون عودة إذا لم تكن
‫القيمة المعادة باطلة.
‫لذلك نحن بحاجة إلى وضع تعليمة عودة هنا خارج تعليمة if للقبض على الحالة التي لم نعد
‫فيها بالفعل داخل تعليمة if.
‫وهنا سنقول فقط ، هل ماتت هذه الشخصية؟
‫حسنًا ، نعم ، بشكل أساسي ، إذا لم يكن ذلك صحيحًا ، فهو في الأساس ميت.
‫إذا لم يكن لدينا بيدق ، إذا لم نتحكم في بيدق ، فإن وحدة التحكم هذه في الأساس جيدة مثل الموتى
‫بالنسبة لنا.
‫وقد يحدث ذلك لأنك تذكر أن البيدق ينفصل عن جهاز التحكم في الذكاء الاصطناعي عندما يموت.
‫لذا سنعود مرة أخرى إلى وضع اللعبة وما الذي سنفعله هنا؟
‫ما نريد القيام به في الأساس هو حلقة for فوق كل I the shooter A. أنا..
‫في العالم.
‫ومع ذلك حلقة من أجل.
‫ماذا نريد أن نفعل؟
‫نريد أن نرى ميتا.
‫في الأساس و / أو في الأساس لم يمت.
‫وإذا لم يمت أي منهم ، فإننا نعلم على الفور أنه لا يتعين علينا فحص العين كلها على الإطلاق.
‫حتى لو كانت أ. أنا. لا يزال على قيد الحياة ، ثم اللعبة لم تنته بعد.
‫لذلك يمكننا أن نفعل ما يُعرف بالعودة المبكرة ، والتي ربما تكون قد رأيتها من قبل ، والتي
‫ستخرج من هذه الوظيفة دون تنفيذ المزيد من التعليمات البرمجية الموجودة فيها.
‫لذلك سيتوقف كل شيء بعد هذا الإرجاع المبكر عن تنفيذ حلقة for ، وسيتوقف عن تنفيذ أي شيء
‫بعد أن يتوقف عن التنفيذ.
‫ولكن بعد ذلك يمكننا القول إذا نجحنا في اجتياز هذه الحلقة الكاملة بنجاح دون أن تعود مبكرًا
‫، مما يعني أنه لا توجد حياة A. أنا. في العالم ، فنحن بحاجة إلى المضي قدمًا وإنهاء اللعبة.
‫سهل هكذا.
‫الآن ، جزء واحد من اللغز الذي نحتاج إلى النظر إليه هنا هو اللعبة النهائية.
‫لأن لعبتنا انتهت على وحدة تحكم اللاعب.
‫دعونا نلقي نظرة على كيفية تعامل وحدة تحكم لاعب مطلق النار مع هذا حاليًا.
‫إذا انتقلنا إلى CP الخاص به ، فإن ما نراه حاليًا هو أنه يتجاهل حاليًا B تمامًا هو الفائز يتجاهل
‫حاليًا ما إذا كان هو الفائز أم لا.
‫لذا ما يتعين علينا القيام به هو تحديد ما إذا كان "ب" هو الفائز.
‫ثم سنقوم بشيء آخر بخلاف ذلك.
‫سنقوم بعرض الشاشة المفقودة.
‫لذا قم بقص هذه الخطوط هنا المسؤولة عن عرض الشاشة المفقودة.
‫ضع ذلك في بيان alt وسنعيد تشغيله في كلتا الحالتين على أي حال.
‫حتى الآن B هو الفائز.
‫ماذا علينا ان نفعل؟
‫حسنًا ، سنمضي قدمًا وربما ننشئ حاجبًا للرياح أيضًا ، والذي سيكون واضحًا إلى
‫حد ما.
‫ننتقل إلى ملف الرأس الخاص بنا لوحدة تحكم لاعب مطلق النار.
‫يمكننا تكرار فئة الشاشة المفقودة وإنشاء فئة شاشة فوز هنا.
‫يمكننا أيضا المضي قدما.
‫وفي الحقيقة ، هذا تحدٍ صغير بالنسبة لك.
‫ربما يمكنك المضي قدمًا وإعداده بحيث يمكنه عمل حاجب الريح.
‫تمام.
‫مرحبًا بعودتك.
‫لذا آمل أن تكون قد أعطيت هذه اللقطة.
‫سنقوم فقط بالدخول ووضع الزجاج الأمامي هنا بدلاً من كل الخسائر ونسخ كل شيء آخر بشكل أساسي.
‫مثل ذلك.
‫سنمضي قدمًا ونجمع هذا ، ثم ننتقل إلى المحرر ونجد أنفسنا فئة
‫تحكم اللاعب.
‫ويجب أن نرى الآن أن هناك فصلًا فارغًا للزجاج الأمامي وما سنفعله هو الانتقال إلى واجهة
‫المستخدم وسأكرر الشاشة المفقودة للاتصال بالزجاج الأمامي ، ويمكنك إنشاء الشاشة الخاصة بك من نقطة الصفر
‫إذا أردت إلى.
‫لكنني سأستخدمه بشكل مشابه للغاية ، باستثناء أنني سأغير اللون إلى اللون الأخضر.
‫واجعلها تربح بدلاً من أن تخسر.
‫لأن منطق إعادة التشغيل سيكون هو نفسه بشكل فعال.
‫هناك سبب لإعادة تعيين لوني هناك.
‫سأذهب وأضبط اللون على اللون الأخضر مرة أخرى.
‫حسنًا ، هذا رائع.
‫ولكن لا يزال لدينا هذا الجزء من الشفرة الزائفة في وضع لعبة KML الذي لم يتم ملؤه.
‫وذلك لأن حساب الفوز هو التحدي الذي تواجهه.
‫املأ الكود الكاذب.
‫استخدم حرف T للنطاق أدناه في هذا الفصل لمساعدتك.
‫استخدم الوظيفة الجديدة ميتة التي أنشأناها على وحدة التحكم واختبرها.
‫تحقق مما إذا كان الزجاج الأمامي الخاص بك يظهر عندما تقتل كل الذكاء الاصطناعي في العالم.
‫لذا ، سأتركه مع الكود الزائف على شاشتك لتلقي نظرة عليه.
‫K مرحبا بعودتك.
‫لنبدأ بحلقة for.
‫لذلك سنقوم بعمل أربعة.
‫ماذا نفعل للتكرار؟
‫إنها ليست وحدة تحكم في هذا الوقت.
‫ستكون وحدة تحكم AI مطلق النار.
‫لذلك نحن بحاجة إلى تجزئة تضمين ذلك.
‫سيكون هو مطلق النار.
‫أنا تحكم h.
‫وهذا يعني أننا سنقوم بالالتفاف حول مطلق النار ، أ. أنا. تحكم ، نجم.
‫ما عليك سوى الاتصال بوحدة التحكم للحصول على السراويل القصيرة ومن ثم سنقوم بمجموعة من الممثلين مرة أخرى مثل مطلق النار
‫A. أنا. مراقب.
‫نحتاج أن نجعل هذين النوعين متطابقين ثم نحصل على العالم.
‫لذلك نحن نفعل ذلك في هذا المستوى.
‫ثم لدينا جسم الحلقة for هنا حيث سنسأل ما إذا كانت ليست ميتة.
‫إذا لم يكن الأمر كذلك ، فإن سهم وحدة التحكم ميت.
‫نحن نقول في الأساس تأكد من أننا لسنا ميتين.
‫وإذا لم يكن الأمر ميتًا ، فسنمضي قدمًا ونعود إلى هذه العودة المبكرة لأننا نعلم أن اللعبة
‫لا يمكن أن تنتهي بعد.
‫وبخلاف ذلك ، إذا مررنا بالثقب للحلقة دون العودة ، فنحن بحاجة إلى إنهاء اللعبة لأن اللاعب يجب
‫أن يكون قد قتل كل الذكاء الاصطناعي في المستوى.
‫لذلك في هذه الحالة يمكننا عمل نهاية اللعبة.
‫حقيقي.
‫لأن اللاعب لديه واحد.
‫وهذا يجب أن يخطر جميع أجهزة التحكم وأجهزة التحكم الموجودة في المشغل.
‫رائع.
‫لذلك دعونا ننتقل ونجمع ذلك.
‫بادئ ذي بدء ، سأنتقل إلى Unreal وألعب.
‫لسبب ما يعتقد المحرر أنني في عملية تحرير اللون المحددة هذه ، لذلك سأغلقها
‫وأعيد تشغيلها.
‫الآن بعد إعادة تشغيله ، سأستمر في اللعب وسأقتل.
‫أولا قبل كل شيء.
‫نعم ، ما زلت أخسر.
‫ذلك رائع.
‫الآن دعنا نرى ما إذا كان بإمكاني قتل هذا الرجل قبل أن يقتلني.
‫لنذهب.
‫بوم ، بوم ، بوم ، بوم ، بوم ، بوم ، بوم.
‫أفقد بسرعة كبيرة.
‫دعنا نذهب ونجد البندقية مرة أخرى ونضعها.
‫لدينا هذا الضرر من البندقية كبير جدًا لأغراض الاختبار.
‫سأذهب وأعيد ضبط الضرر إلى 20 ربما هذه المرة.
‫لذلك لا يزال سريعًا ، لكن ليس بالسرعة نفسها.
‫اذهب والعب وضرب هذا الرجل عدة مرات.
‫وما رأيناه هناك هو أنني فزت بالفعل لأن المستوى أعيد تشغيله.
‫لذا إذا ذهبت وقتلت هذا الرجل مرة أخرى ، فلن ترى شيئًا يحدث.
‫إنه يقول في سجل الرسائل أن الإنشاء الذي تم استدعاؤه بفئة فارغة.
‫والسبب في ذلك ، إذا انتقلنا إلى وحدة تحكم لاعب BP shooter مرة أخرى ، يمكنك أن ترى أننا لم نقم بتوصيل الزجاج
‫الأمامي الخاص بنا.
‫لقد نسيت أن أفعل شيئًا واحدًا ، لذا يمكنك الذهاب والتجميع والحفظ واللعب.
‫والآن آمل إذا قتلت هذا الرجل في New Doom ، سأفوز وسأعاود التشغيل في 5 ثوان.
‫وأريد أن أوضح لكم أن الأمر نفسه صحيح.
‫إذا وضعت المزيد من وحدات التحكم في اللاعبين في العالم ، فسوف يتطلب مني قتل كلاهما.
‫لذلك دعنا نذهب ونحضر شخصية مطلق النار هنا.
‫وهذا سيكون عدوي الثاني الذي أقتله.
‫لذا اقتل هذا الرجل ، بوم.
‫ولم يفز.
‫ثم انتقلت إلى الرجل الثاني ، بوم.
‫والآن لدي واحد لأنني قتلت كل الذكاء الاصطناعي ولم يكن علينا تغيير أي متغيرات للقيام بذلك لأن حلقة
‫for تحسب كل الكائنات الحية A. أنا. في كل مرة من الصفر.
‫لذلك نحن نعيش الآن في عالم صامت تمامًا.
‫لذا في المحاضرة التالية ، أريد أن أبدأ بالنظر قليلاً في كيفية عمل بعض الصوت.
‫سأراك هناك.