‫أهلا ومرحبا.
‫في هذه المحاضرة ، سنقوم بإنشاء وضع ألعاب محمول قاتل ، والذي سيكون مجرد
‫واحد من أوضاع اللعبة الممكنة التي يمكننا إنشاؤها بسبب وجود طريقة قتل افتراضية يمكن استدعاؤها على
‫أي من أوضاع اللعبة التي نريدها.
‫دعونا نتعمق ونرى كيف سنقوم بتنفيذ هذه الطريقة الافتراضية.
‫لذلك نود أن تكون لعبتنا قادرة على إنهاء.
‫ماذا يعني أن تنتهي اللعبة؟
‫هذا يعني أننا نذهب إلى نوع من الحالة حيث نكون نحن أو خسرنا.
‫نقوم بإبلاغ اللاعب باستخدام بعض واجهة المستخدم.
‫نمنحهم خيار إعادة التشغيل وتشغيله مرة أخرى.
‫شيء على هذا المنوال.
‫عادةً ما تكون الفئات المعنية بهذا الوضع عبارة عن وضع لعب.
‫وضع اللعبة مسؤول عن تحديد القواعد المتعلقة باللعبة ، مثل من ربح ومن خسر.
‫ومن أجل ذلك ، سنحتاج إلى معرفة من يُقتل.
‫لذلك سيكون لدينا هذه الطريقة الافتراضية هنا تسمى Pawn Killed ، والتي سيتم استدعاؤها من
‫بيدق مطلق النار لدينا عندما يموت ، سواء كان ذلك هو الذكاء الاصطناعي أم لا أو اللاعب الذي يقوم بالموت.
‫علاوة على ذلك ، أود إضافة القليل من التعقيد هنا ، وهو أنه سيكون لدينا أوضاع لعب
‫مختلفة مشتقة من وضع لعبة إطلاق النار الرئيسي.
‫سيقومون بتنفيذ وضع اللعبة هذا.
‫هذا ما يعنيه السهم هنا.
‫غالبًا ما تكون الطريقة التي يسير بها السهم غير منطقية بعض الشيء ، لكن اقتلهم جميعًا.
‫يرث وضع اللعبة من وضع لعبة مطلق النار ويتجاوز البيدق المقتول من أجل العد العكسي واتخاذ قرار
‫مختلف بشأن قواعد اللعبة.
‫لهذا السبب أرغب في وضع طريقة قتل البيدق الافتراضية في وضع لعبة مطلق النار الأصل ثم
‫تنفيذها أو تجاوزها مرة أخرى في وضع قتل جميع الألعاب ، والذي سيكون وضع اللعبة الذي
‫نطبقه لأنفسنا.
‫وقد تختار القيام بأوضاع لعب مختلفة حيث قد ترغب فقط في قتل عدد معين من الأعداء
‫في المستوى بدلاً من قتلهم جميعًا أو شيء من هذا القبيل.
‫ربما استولت على العلم ، شيء مختلف.
‫لكن ما سيحدث بشكل أساسي هو أن مطلق النار - سيجد وضع اللعبة الذي يحتوي على وضع
‫لعبة إطلاق النار من النوع وسيطلق عليه - تم قتله.
‫وبعد ذلك ، اعتمادًا على أي تطبيق موجود بالفعل ، سيتم الانتقال إلى
‫التنفيذ عبر التجاوز.
‫الآن ، هناك تعقيد آخر هنا وهو أن منطق واجهة المستخدم الخاص بنا ومنطق إعادة التشغيل هو أمر يجب
‫أن يحدث في واجهة مستخدم وحدة التحكم في المشغل عمومًا كونها من اختصاص اللاعب وليس شيئًا عالميًا مثل
‫وضع اللعبة.
‫هذا صحيح بشكل خاص في الألعاب متعددة اللاعبين لأن وضع اللعبة غير موجود بالفعل على جهاز اللاعب
‫، إنه موجود فقط على الخادم.
‫لذلك يجب أن تحدث أي عناصر من واجهة المستخدم في وحدة تحكم المشغل.
‫هذا تعقيد لا داعي للقلق بشأنه لأن هذه ليست لعبة متعددة
‫اللاعبين ، ولكن لا يزال من الجيد استخدام الفئات لما يُتوقع استخدامها في Unreal.
‫لذا فإن وحدة تحكم اللاعب ، فئة وحدة التحكم في مشغل الجذر الفعلي لديها طريقة افتراضية تسمى اللعبة انتهت
‫خصيصًا لهذا الغرض بحيث يمكن لوضع اللعبة استدعاء هذه الطريقة ويمكننا تنفيذها في وحدة تحكم لاعب مطلق النار الخاصة بنا
‫للقيام بواجهة المستخدم ، إعادة التشغيل ، الكل هذا النوع من الأشياء.
‫لكننا سنحتاج إلى الاتصال به من وضع لعبتنا عندما نقرر أن اللعبة قد انتهت.
‫لذلك سنسمي اللعبة الافتراضية قد انتهت على وحدة تحكم مشغل الجذر.
‫وبعد ذلك ، نظرًا لأن وحدة التحكم في مشغل الجذر هي في الواقع مطلق النار ، سينتهي الأمر بوحدة التحكم في المشغل
‫بالعودة والاتصال.
‫انتهت هذه اللعبة.
‫لذلك يبدو أنه طريق دائري سنقوم بالاتصال به من بيدق مطلق النار الخاص بنا عبر وضع لعبة مطلق النار إلى وضع
‫اللعبة الأكثر قاتلًا إلى وحدة تحكم اللاعب إلى وحدة تحكم لاعب مطلق النار.
‫لكن هذا يتيح لنا قدرًا كبيرًا من المرونة من حيث القول ، حسنًا ، يمكننا المزج والتوفيق بين وحدات تحكم اللاعب المختلفة
‫التي ستعرض واجهة المستخدم بطرق مختلفة ، بمستويات مختلفة.
‫يمكننا المزج والتوفيق بين أوضاع اللعبة المختلفة التي ستعمل بطرق مختلفة
‫، وهذا هو سبب تصميمها بهذه الطريقة.
‫إنها مبالغة قليلاً بالنسبة لمشروعنا ، لكنه يوضح لك كيف يمكن أن يمتد ذلك إلى مشاريع أخرى باستخدام
‫أوضاع لعبة Capture the Flag وأنواع مختلفة من وحدات تحكم اللاعب.
‫لذلك دعونا نبدأ في تنفيذه.
‫سنذهب أولاً وقبل كل شيء ، سنجد طريقة لعب الطريق.
‫يوجد بالفعل واحد تم إنشاؤه لأنني بدأت من مشروع C ++.
‫لدينا قاعدة وضع لعبة إطلاق النار البسيطة هذه وما أريد أن
‫أفعله هنا هو إنشاء وظيفة عامة ستعود باطلاً وستكون - تُقتل ويجب أن نمر في -
‫ذلك قُتل هنا.
‫لذلك سيكون - يُدعى - يُقتل على هذا النحو.
‫ثم في البداية ، سنجعل هذه طريقة افتراضية وسنمضي قدمًا
‫وننشئ تطبيقًا أساسيًا لا يفعل شيئًا هنا.
‫ثم سنقوم بإنشاء فئة فرعية.
‫إذن ، فئة C ++ الجديدة ، ستعرض جميع الفئات وسنبحث عن مطلق النار ، وقاعدة وضع لعبة مطلق النار البسيطة
‫كفئة أساسية لدينا.
‫وسنطلق على هذا وضع لعبة Kill em all مثل ذلك ونمضي قدمًا وننشئ هذه الفئة.
‫ثم عندما يتم تجميع ذلك ، أريد فقط التبديل لثانية والذهاب إلى شخصية مطلق النار الخاصة بنا.
‫CP ويمكنك أن ترى هنا أن لدينا موتى في طريقة أخذ الضرر.
‫الآن إذا مات هذا ، ما أريد أن أفعله هو الحصول على وضع لعبتنا واستدعاء
‫- قتل.
‫لذا فإن الطريقة التي نقوم بها هي أننا نبدأ بالاتصال للحصول على العالم من أجل الحصول على وضع اللعبة
‫، ثم نحصل على وضع المصادقة.
‫ثم ما نريد القيام به هو أن يكون وضع اللعبة هذا من النوع الصحيح ، وهو الوضع البسيط والجذر ، ووضع لعبة
‫مطلق النار البسيط الذي يسمح لنا بعد ذلك بتبديل هذه الشخصية ، واستخدامها مع أوضاع لعب
‫مختلفة مثل مثل التقاط أوضاع لعبة العلم.
‫لذا ، بالطريقة التي يمكننا بها القيام بذلك ، يمكننا استخدام الأقواس الزاوية في وضع الحصول
‫على كل لعبة هنا ، وسنقوم بوضع لعبة إطلاق نار بسيطة وسنحتاج إلى تضمين ذلك في الجزء العلوي.
‫لذلك تتضمن التجزئة قاعدة وضع لعبة إطلاق النار البسيطة.
‫إذن لم أحصل على اسم الفصل بالكامل بشكل صحيح؟
‫أعتقد ذلك.
‫ستكون قاعدة بسيطة لوضع لعبة إطلاق النار.
‫هذا ما نحاول الحصول عليه.
‫ويمكننا المضي قدمًا وتخزين ذلك في مؤشر متغير ، دعنا نسميه وضع اللعبة.
‫ثم ما نريد فعله هو في هذا السطر الجديد ، ربما نريد التحقق من أننا حصلنا على هذا وأنه ليس مؤشرًا
‫فارغًا.
‫لذا فإن وضع اللعبة لا يساوي مؤشر فارغ.
‫ثم إذا لم يكن مساويًا لمؤشر فارغ ، فهذا هو المكان الذي نريد أن نطلق عليه اسم لعبة وضع السهم قتل البيدق
‫وقتل البيدق ، فهل هذا هو الحال؟
‫حتى الآن أصبح وضع اللعبة على دراية بقتل بيدق.
‫تحدي صغير لك لتجاوز وضع قتلهم جميعًا حتى تتمكن من ذلك.
‫قم بتسجيل الخروج عندما يتم قتل - وضبط ذلك على أنه وضع اللعبة الافتراضي في خريطتك.
‫لذا آمل أن تكون قد خضت هذا التحدي الصغير.
‫سنمضي قدمًا وننفذ.
‫لذلك سأفعل ذلك عن طريق نسخ القسم العام من قاعدة وضع لعبة التصويب البسيطة ، ومن الصعب
‫تتبع كل هذه الأشياء.
‫ثم سننتقل إلى قاعدة وضع اللعب لدينا ، والتي ترث منها.
‫وسنقوم باللصق في الطريقة الافتراضية وسنضيف الكلمة الأساسية للتجاوز للتأكد من أننا نتجاوز
‫هذه الطريقة بشكل صحيح.
‫ثم سأقوم بإنشاء تطبيق في C ++ لقاعدة وضع لعبة KML الخاصة بنا.
‫هذا هو المكان الذي يجب أن نحصل فيه على رسالة السجل هذه.
‫ولكي نكون حذرين للغاية ، نعلم أنه لا يوجد شيء في التنفيذ ، لكنك لا تعرف أبدًا.
‫قد تتغير الأمور لاحقًا وقد نتعرض للعض في القنبلة.
‫لذلك نريد قتل بيدق.
‫سوبر - قتل مع - قتل.
‫من المنطقي.
‫وبعد ذلك نريد أن نقوم بتسجيل الدخول هنا بشكل أساسي بالقول إن - قُتل ويمكننا معرفة ما إذا كان ذلك يعمل
‫بالانتقال إلى Unreal والتجميع ، ثم الانتقال إلى عنصر المخططات في شريط الأدوات وتحديد ذلك
‫في إعدادات المشروع وضع لعبتنا الافتراضي الذي نريده.
‫إذا حددنا وضع اللعبة ، والفئة الأساسية ، فنحن نريدها أن تكون هي وضع اللعبة المستند إلى KML.
‫في الأساس ، انطلق وافعل ذلك.
‫في الواقع ، هذا ليس تمامًا ما نريد أن نفعله إذا ذهبنا واخترنا.
‫أردنا في الواقع أن نكون مخططًا ثانويًا لذلك ولدينا بالفعل مخطط طفل لديه الكثير من الأشياء التي تم
‫إعدادها.
‫لذلك دعونا نقوم بعمل إعادة الأبوة والأمومة هناك.
‫سنذهب إلى الجذور ، وسنجد وضع لعبة إطلاق النار BP ، الذي لدينا هنا.
‫سنقوم بإعادة تسمية BP هذا ، ونقتل كل وضع اللعبة ، وبعد ذلك يمكننا فتح ذلك ، وإرساء النافذة ، وفتح
‫محرر المخطط الكامل ، والانتقال إلى إعدادات الفصل وتغيير الوالد إلى وضع لعبة KML ، C ++
‫بشكل أساسي .
‫وبهذه الطريقة يجب أن نقوم بتشغيل الكود الصحيح إذا انتقلنا إلى رسالتنا إلى سجل الإخراج
‫الخاص بنا وقمنا بالضغط على زر التشغيل ثم قتلنا شخصية ما ، لا يبدو أن لدينا مشكلة في الإعداد الصحيح.
‫لذلك إذا عدنا إلى الإعدادات الافتراضية للفئة وقمنا بتغيير الفئة الافتراضية - إلى كونها شخصية تصويب BP ، فيجب
‫أن يكون ذلك صحيحًا.
‫حفظ وجمع فقط في حالة حدوث ذلك بشكل خاطئ.
‫ثم تحقق من المخططات المنسدلة هنا.
‫تم تحديد وضع لعبة KML ، وهو وضع C ++.
‫لذلك نريد بالفعل اختيار المخطط هنا والمضي قدمًا والضغط على التشغيل.
‫الآن لدينا بيدقنا.
‫يمكننا المضي قدمًا وقتل هذا الرجل ويمكنك أن ترى أنه تم طباعة بيدق برسالة سجل.
‫لذلك هذا يعمل بشكل خيالي.
‫الآن في المحاضرة التالية ، سننظر في الجزء الثاني من هذا ، وهو أن اللعبة
‫قد انتهت عندما نريد بالفعل إنهاء اللعبة وأن نكون قادرين على إعادة التشغيل من هناك.
‫لذلك سوف أراك في تلك المحاضرة.