‫أهلا ومرحبا.
‫في هذه المحاضرة ، سنجعل عدونا أكثر تهديدًا من خلال تنفيذ عقدة إطلاق النار في C ++.
‫دعنا نتعمق ونرى كيف نفعل ذلك.
‫لذا فإن إحدى الوظائف التي من الواضح أنها مفقودة من شجرة سلوكنا هي القدرة على التصوير.
‫ما أود فعله بشكل مثالي هو الانتقال إلى موقع اللاعب ثم التصوير.
‫لكننا نريد أن نغير قليلاً أولاً كيف نقوم بالحركة.
‫هناك شيئان أريد تعديلهما ، لذا إذا اخترت الانتقال إلى Node ، فإن أحد الأشياء التي أريد تغييرها
‫هو نصف القطر.
‫لا أريد أن يأتي العدو نحوي ، لذا إذا قمت بتغيير نصف القطر المقبول ، فسوف يتوقف
‫عن التحرك على بعد خمسة أمتار مني.
‫لذلك سوف يتوقف.
‫أعطني مسافة خمسة أمتار لطيفة.
‫يأتي إلي ، ها أنت ذا.
‫ويتوقف ويحدق.
‫الآن الشيء الآخر الذي أريد القيام به هو هنا في الأسفل هنا في قسم السبورة ، يمكنك أن ترى أن هناك قيمة
‫لوحظت في السبورة.
‫إذا لم يتم التحقق من ذلك ، فلنرى ما سيحدث أثناء انتقالي.
‫كان بشكل أساسي وكان هذا أكثر وضوحًا عندما كان لدينا نصف قطر مقبول أصغر.
‫لذا دعنا نعلق ذلك بالأسفل على خمسة أربعة الآن.
‫وإذا قمت بالضغط على زر التشغيل ، يمكنك رؤية ذلك وأنا أتحرك.
‫يذهب إلى آخر موقع لي وبعد ذلك فقط عندما يصل إلى ذلك ، هل يأتي تحديثًا.
‫هذا ليس ما نريده.
‫ما نريده هو أن نتجه نحونا باستمرار.
‫وإذا قمت بفحص قيمة الملاحظة في السبورة ، فإن ما تقوله بشكل أساسي هو أنه في كل مرة
‫يتغير فيها موقع اللاعب ، سنقوم بتحديث المكان الذي ننتقل إليه.
‫لذلك إذا تقدمت وضغطت على اللعب والتحرك ، يمكنك أن ترى أنه يتابعني باستمرار ويحدث
‫مساره.
‫هذا بالضبط ما نريده.
‫يمكننا الآن تغيير نصف قطر القبول إلى 500 ويصبح أقل وضوحًا.
‫ولكن لا يزال من الجيد أن لدينا قيمة السبورة الملحوظة هناك.
‫ثم السلوك الذي نريده هو أنه بمجرد دخوله في دائرة نصف قطرها منا مثل ذلك سيتوقف ويطلق
‫النار علينا.
‫لذلك نحن بحاجة إلى نوع جديد من المهام.
‫لذلك سنقوم بإنشاء مهمة C ++ جديدة هنا.
‫لذلك سنقوم بإضافة فئة C ++ جديدة.
‫ثم سنذهب ونعرض جميع الفئات ونبحث عن مهمة الإيقاع.
‫الآن ، أي واحد نريد ، عقدة مهمة الإيقاع أم قاعدة السبورة ذات المهام الإيقاعية؟
‫حسنًا ، لا نحتاج في الواقع إلى استخدام مفتاح لأننا سنحاول فقط التصوير.
‫هذا كل ما سنفعله.
‫سنقوم بسحب الزناد على بندقيتنا أو سيتم تنفيذ الهدف في مكان آخر في شجرة سلوكنا.
‫لذلك دعونا نفتح عقدة المهمة ، الفئة الأساسية هنا ، وسنسمي هذه المهمة الضاربة.
‫تسطير.
‫أطلق النار.
‫دعنا نمضي قدمًا وننشئ هذا الفصل.
‫ثم ننتهي بشيء مثل هذا.
‫لذلك نريد أن نفعل نفس الإعداد.
‫لذا ، هناك القليل من التحدي الصغير بالنسبة لك للقيام بنفس نوع الإعداد كما لدينا بالنسبة للسبورة ، قيمة
‫السبورة الواضحة.
‫نريد أن يكون لدينا اسم ، نريد أن يكون لدينا مهمة تنفيذية.
‫لنفترض الآن الفيديو وقم بتجربة ذلك.
‫حسنًا ، أرحب بعودتك.
‫لذلك كانت هذه مهمة صغيرة.
‫سأقوم فقط بنسخ التواقيع من قيمة السبورة الواضحة للتصوير ، بما في ذلك الأقسام
‫العامة والمحمية.
‫سأقوم بتغيير اسم المنشئ الخاص بنا.
‫سأقوم بتطبيق المُنشئ الخاص بنا.
‫وماذا كان علينا أن نفعل؟
‫كنا بحاجة إلى تعيين اسم العقدة مساويًا للتصوير.
‫هذا ما سنسميه.
‫ثم عد إلى العنوان الرئيسي لمهمة التصوير وسنحاول تنفيذ مهمة التنفيذ الآن
‫ونحتاج فقط إلى استدعاء Super.
‫لذلك سأقوم بنسخ ذلك من ملف CP ذي قيمة السبورة الواضحة ومن ثم نكون مستعدين لبدء التنفيذ.
‫لذا فإن أول شيء يتعين علينا القيام به هنا ، دعونا نمتلك مساحة أكبر قليلاً
‫هو أننا سنحتاج إلى الحصول على بيدقنا.
‫لماذا نحتاج إلى الحصول على بيدقنا؟
‫حسنًا ، دعنا نلقي نظرة على شخصية مطلق النار ، وهو بيدق.
‫تذكر شخصية مطلق النار؟
‫Dot H لديها طريقة تصوير.
‫هذا ما نريد أن نطلق عليه في الأساس نفس ما يفعله اللاعب.
‫إنه يضغط باستمرار على زر الزناد وهذا ما يسمى طريقة التصوير هذه.
‫نريد أن يكون الذكاء الاصطناعي قادرًا على فعل الشيء نفسه.
‫عندما تكون لديك مهمة إطلاق النار ، فستضغط باستمرار على زر التشغيل أو تضغط بشكل متكرر على زر التشغيل هذا
‫حتى تكون مهمة التنفيذ هي المكان المناسب للقيام بذلك.
‫ربما سنعيد ما هنا ، لأن تذكر أن هذا الإجراء مجرد لقطة واحدة.
‫إنه ليس إطلاق نار مستمر.
‫ماذا علينا ان نفعل؟
‫سنعود نتيجة نجاح عقدة ET إذا نجحنا أو نجحنا.
‫إذا نجحنا لأننا لسنا بحاجة إلى تبريد القراد باستمرار.
‫لا نحتاج إلى تشغيل هذه المهمة لفترة أطول من إطار واحد.
‫والشيء الآخر الذي يتعين علينا القيام به هو التمسك ، كما قلت ، بفئة البيدق.
‫حسنًا ، ما سأفعله هو أنني سأريكم كيف يمكنك الحصول على وحدة تحكم الذكاء الاصطناعي.
‫ومن متحكم الذكاء الاصطناعي ، نعلم أنه يمكننا استدعاء البيدق للحصول على البيدق الذي تم التحكم فيه.
‫ونعلم أنه يمكننا إلقاء هذا البيدق الخاضع للتحكم في تطبيق شخصية مطلق النار.
‫إذن كيف نحصل على وحدة تحكم الذكاء الاصطناعي من هذا؟
‫حسنًا ، لدينا مكون شجرة السلوك ، والذي نعرف أنه موجود على وحدة تحكم الذكاء الاصطناعي.
‫لذلك ربما يحتوي هذا على شيء يمكننا استخدامه إذا انتقلنا إلى مكون شجرة سلوك Yu وألقينا
‫نظرة هنا لمعرفة أي طرق قد تكون مفيدة.
‫يوجد الكثير هنا ، ولكن إذا بحثنا عن وحدة تحكم ، فإننا لا نرى أي شيء ولكن ربما في مكان
‫ما في إحدى فئاتها الأساسية لأن الفئة الرئيسية لمكون شجرة سلوك YU هي مكون دماغ
‫يو.
‫نتابع ذلك ونبحث عن وحدة تحكم هنا.
‫يمكنك أن ترى أن هناك خاصية لها.
‫هل هناك جامع؟
‫نعم ، هناك ما يسمى الحصول على مالك AI ويجب أن يعود ذلك إذا مررنا فوقه مؤشر تحكم AI.
‫لذلك يجب أن تكون قادرًا على استخدام ذلك للحصول على البيدق ، وإلقاءه على شخصية مطلق النار ثم
‫استدعاء طريقة إطلاق النار.
‫لذلك سيكون هذا هو التحدي الذي تواجهه في استدعاء طريقة إطلاق النار ، وجعلها عامة ، والحصول على البيدق
‫، وإلقاء البيدق ، والاتصال ، وإطلاق النار ، ثم اختبارها في شجرة السلوك الخاصة بك.
‫أوقف الفيديو واذهب.
‫تمام.
‫مرحبًا بعودتك.
‫لذا ، أولاً وقبل كل شيء ، الخطوة الأولى هي أننا سنحتاج إلى جعل طريقة التصوير هذه عامة
‫لأنه يجب استدعاؤها من خارج هذا الفصل.
‫لذلك سأضعها فقط تتسبب في الضرر.
‫سنلتقط الصور ، ونعطيها مساحة صغيرة ، وغرفة تنفس صغيرة.
‫أنا أحب الفضاء الأبيض يساعدني على الرؤية.
‫ساعدني على التفكير.
‫ثم نذهب إلى جلسة تصوير مهمة BT.
‫سنقوم أولاً بالتحقق من أن وحدة التحكم الخاصة بنا ليست فارغة.
‫وإلا لا يمكننا استخدام عامل تشغيل السهم عليه.
‫فقط عامة ، ممارسة جيدة للقيام بهذه الفحوصات الفارغة.
‫لذلك إذا كان مالك الذكاء الاصطناعي هذا غير متساوٍ ، آسف يساوي مؤشر فارغ ، فسنريد العودة مبكرًا
‫بفشل.
‫لذلك ستفشل هذه المهمة إذا لم يكن لدينا جهاز تحكم AI.
‫هذا واضح ومباشر.
‫لذلك سأقوم بعمل نقطتين عائدتين لنتيجة عقدة ET.
‫فشل القولون هكذا.
‫وبعد ذلك سنقوم بعمل مكون المالك ، والحصول على مالك الذكاء الاصطناعي ، وسنقوم بذلك.
‫في الواقع ، قد نحتاج إلى تضمين ملف رأس هنا.
‫لذلك دعونا نقوم بتضمين التجزئة وستكون إطار اللعبة ووحدة التحكم.
‫وفي الحقيقة أعتقد ، نعم ، يجب على أي وحدة تحكم أن تفعل ، لكن أعتقد أننا بحاجة إلى وحدة تحكم
‫الذكاء الاصطناعي لأن هذا هو نوع المؤشر الذي سنعود إليه ومن ثم سنقوم بعمل
‫سهم وسنقوم بذلك أعمل بيدق هنا أشتكي من شيء في رأسي.
‫ربما ليس لدي شيء صحيح.
‫الشرطة المائلة للأمام يبدو أنني أخطأت في الأمر.
‫إنه ليس في الواقع في إطار اللعبة.
‫لديك فقط وحدة تحكم لتضمين ذلك.
‫علمني لكونك مبهرجًا جدًا بشأن ذلك.
‫لذا ها نحن ذا.
‫يمكننا الآن الحصول على البيدق من.
‫وكما قلت ، نحتاج أيضًا إلى عمل طاقم.
‫لذلك سنقوم بعمل طاقم للنوع الذي سنحتاجه لإلقاء نظرة على شخصية مطلق النار.
‫هذا هو في شكله الكامل شخصية مطلق النار ، شخصية مطلق النار.
‫وسنحتاج إلى التحقق من نتيجة هذا أيضًا.
‫لكننا نحتاج إلى تضمين شخصية مطلق النار لدينا.
‫لذا تتضمن التجزئة في الجزء العلوي شخصية مطلق النار.
‫تود هـ.
‫على هذا النحو وسنقوم بتخزين ذلك في شخصية مطلق النار من نوع المؤشر.
‫النجم سيكون شخصيتنا.
‫هذا ما نسميه.
‫سنقوم بتخزينه هناك.
‫وبشكل أساسي ، نحتاج إلى التأكد من أنه لا يمكن إرجاع أي منهما - الذي تم إرجاعه لأن get - فارغًا
‫إذا كانت العين لا تتحكم حاليًا في بيدق.
‫أو قد يعود هذا المصبوب فارغًا إذا لم يكن النوع يمثل مشكلة للشخصية إذا كان يتحكم في نوع
‫مختلف من -.
‫لحسن الحظ ، يتدرج هذان العنصران معًا بشكل جيد ، لذا إذا حاولت إلقاء مؤشر فارغ ، فإن النتيجة هي مجرد مؤشر
‫فارغ ، وهذا هو السبب في أنه يمكننا القيام بذلك.
‫هذه الشيكات كلها في سطر واحد.
‫ثم يمكننا أن نفعل حرف إذا.
‫يساوي مؤشر فارغ.
‫ثم نريد أن نفشل مرة أخرى.
‫لذا عد.
‫نتيجة عقدة ET.
‫القولون.
‫فشل القولون هكذا.
‫وأخيرًا ، بعد كل هذه الفحوصات ونعلم أننا حصلنا على شخصية مطلق النار
‫، يجب أن نكون قادرين على استدعاء "إطلاق النار" بحيث يتم إطلاق "السهم" وإطلاق النار هكذا حتى نتمكن أخيرًا من إطلاق النار.
‫دعنا ننتقل إلى شجرة سلوكنا.
‫وهنا نريد أن ننسحب لأسفل لوضع عقدة جديدة والبحث عن مهمة إطلاق النار الجديدة التي
‫لدينا هنا.
‫ولست متأكدًا مما إذا كنت قد جمعت ، لذلك سأحرص فقط على تجميع كل شيء مرة أخرى.
‫وبمجرد الانتهاء من ذلك ، يمكننا المضي قدمًا والضغط على اللعب ومعرفة ما إذا كان هذا الرجل يأتي ويطلق النار.
‫نعم يفعل.
‫لسوء الحظ ، يطلق النار بشكل متكرر ويطلق النار على قدمه.
‫لذلك هناك شيء لا يكتب تمامًا.
‫لذلك هناك شيئان يحدثان بشكل خاطئ.
‫في البداية ، تمكن من قتل نفسه برصاصتين ، ويبدو أيضًا أنه يصور كل إطار فردي ،
‫وهو أمر منطقي لأننا سنرى اللاعب ، ننتقل إليهم ثم نطلق النار هو الإجراء
‫الأخير لدينا هنا ، وسوف ننفذها مرارًا وتكرارًا.
‫إذن ما نريد فعله هو تحويل هذا إلى تسلسل.
‫لذلك سأقوم بسحب عقدة هنا تسمى تكوين عقدة تسلسلية.
‫وما سنفعله هو أننا سنطلق النار ، ثم ننتظر ، ثم نطلق النار ، ثم ننتظر ونكرر ذلك إلى
‫أجل غير مسمى.
‫لذا أطلق النار أولاً ، انتظر قليلاً.
‫لذلك ربما ننتظر ، لا أعلم ، لمدة 1/2 بين اللقطات ثم نرغب في تكرار هذا ، وهو ما يمكننا فعله
‫باستخدام مصمم.
‫لذلك إذا قمت بالنقر بزر الماوس الأيمن فوق إضافة مصمم وبحثت عن مصمم الحلقة ، فيمكنك معرفة عدد المرات التي
‫تريدها أن تتكرر.
‫تقول ثلاث مرات.
‫لا نريدها ثلاث مرات.
‫نريده بشكل أساسي أن يستمر في التكرار اللانهائي حتى نحتاج إلى التحرك أو نحتاج إلى فقدان بصر اللاعب ونحتاج
‫إلى الذهاب والتحقيق.
‫لذلك سنمضي قدمًا ونضغط على Play ونرى ما إذا كان ذلك يعمل.
‫يأتي إلي.
‫يطلق النار ويطلق النار ويطلق النار.
‫لكنه لا يضربني في الواقع.
‫يمكنك أن ترى أن طلقاته تسقط بالفعل على نفسه.
‫وسوف نتعامل مع هذا الخطأ في محاضرة قادمة.
‫اراك هناك.