‫يا.
‫مرحبًا بعودتك.
‫نحن على استعداد لإنهاء لعبتنا ، مما يعني أنه لم يتبق سوى عدد قليل من الأشياء التي يجب القيام
‫بها لتحسين لعبتنا وجعلها في حالة يسعدنا بها.
‫لذا استعد لإنهاء هذه اللعبة.
‫نحن على وشك الانتهاء.
‫سنقوم فقط بإضافة بعض الميزات.
‫أود أن أجعل حركة الكاميرا أكثر سلاسة ، لذلك سنبدأ بذلك.
‫لقد لاحظت أيضًا أن الأبراج لا تزال تطلق مقذوفات بعد موت الخزان ، لذا يمكننا
‫إجراء إصلاح سهل للرمز لمنع حدوث ذلك.
‫وأيضًا ، سأقوم بزيارة مشكلة محتملة تتعلق بنقطة انتشار القذيفة.
‫لذلك دعونا نقفز ونصقل هذه اللعبة.
‫الآن ، أول شيء أود النظر إليه هو حركة الكاميرا.
‫لذا إذا تقدمت وضغطت على اللعب ، فسأريكم فقط ما أعنيه.
‫عندما أتحرك ، سترى أن الكاميرا تتبع حركتنا تمامًا أثناء دوراننا ، وبينما نتحرك
‫للأمام والخلف ، تتبع الكاميرا تلقائيًا نوعًا ما.
‫الآن ، هناك خدعة لطيفة يمكننا إضافتها إلى هذه الكاميرا يمكن أن تجعلها أكثر سلاسة.
‫دعنا نمضي قدمًا ونفتح خزان بركة BP.
‫الآن هنا في BP Pond Tank ، سأقوم باختيار مكون ذراع الزنبرك الخاص بنا.
‫وإذا بحثت عن تأخر الكاميرا ، فسأرى هنا في قسم التأخر ، هناك مربع الاختيار هذا لتمكين تأخر الكاميرا.
‫سأقوم بفحص ذلك وتمكين تأخر دوران الكاميرا.
‫سوف أتحقق من ذلك أيضًا.
‫الآن ، هذا يسمح لنا بتخلف الكاميرا عن الركب واللحاق بها بسلاسة ، مما يخلق نوعًا لطيفًا من تأثير
‫الكاميرا الاحترافي.
‫دعنا نمضي قدمًا ونضرب التشغيل ونختبر ذلك.
‫لذا لاحظ أثناء تحركي ، أن الكاميرا تستغرق وقتًا قصيرًا لتلحق نوعًا ما بما نتحرك.
‫وينطبق الشيء نفسه عندما نقوم بالدوران.
‫لذلك يبدو الأمر كما لو أن هناك القليل من الجمود والكاميرا على نوع من المسار المنزلق وتتباطأ
‫حتى تتوقف.
‫الآن يمكننا تحديد ذراع الزنبرك ويمكننا تغيير سرعة تأخر الكاميرا وسرعة تأخر الدوران.
‫لذا ، على سبيل المثال ، إذا وضعت هذا على قيمة أصغر ، لنقل خمسة وخمسة بدلاً من عشرة ، فلنلقِ نظرة
‫الآن على شكلها.
‫لذلك أنا أتحرك وسترون أن الكاميرا بها تأخر أكثر قليلاً.
‫الآن ، يمكننا زيادة أو تقليل هذا على النحو الذي نراه مناسبًا.
‫هذا شيء يمكنك تجربته وإيجاد القيم التي تناسبك.
‫هنا لدينا قيمة اثنين وبالنسبة لي هذا تأخير كبير جدًا.
‫لذلك أعتقد أن شيئًا ما بين خمسة إلى اثنين سيكون مناسبًا لي.
‫إذا كنت تحب هذا النوع من القيمة ، فربما ستبقيها عند اثنين أو ربما أقل.
‫لكنني سأضع هذا في قيمة ، على سبيل المثال ، أربعة لسرعة تأخر الكاميرا وأربعة لسرعة تأخر دوران الكاميرا.
‫دعونا نلقي نظرة على كيف يبدو ذلك.
‫لذلك عندما أتحرك ، تتأخر الكاميرا.
‫من الواضح أن هناك بعض تأخر الكاميرا ، لكنه ليس كثيرًا.
‫أعتقد أن هذا يبدو جيدًا حقًا ، لذلك أنا راضٍ جدًا عن ذلك.
‫العنصر التالي لدينا هو إطلاق البرج بعد موت الخزان بالفعل.
‫اسمحوا لي أن أمضي قدمًا وأريكم ما أعنيه.
‫هناك نذهب.
‫ماتت الدبابة ولا تزال الأبراج تطلق النيران.
‫الآن ، هذا لأن الخزان لا يزال موجودًا.
‫وطالما كانت في مدى النار ، ستستمر الأبراج في إطلاق النار.
‫يمكن التعامل مع هذا بسهولة من خلال وجود نوع من المتغير يمكننا التحقق منه لمعرفة ما إذا كان الخزان قد مات.
‫لذلك سأذهب إلى فئة الخزان هنا والدبابة ، وسأضيف متغيرًا منطقيًا يمكننا التحقق منه لمعرفة ما
‫إذا كان الخزان لا يزال على قيد الحياة.
‫وسأعلن هذا لأننا نخطط للوصول إليه من خارج الفصل.
‫لذلك سأجعل هذا متغير ثور يسمى Be Alive ، وسأجعله يساوي true افتراضيًا.
‫لذلك سيبدأ الخزان في حالة الحياة ، ثم عندما تموت الدبابة ، سيتم تعيين الحياة على "خطأ".
‫ويمكن أن يحدث ذلك في دبابة CP عند تدمير المقبض.
‫لذلك دعونا نذهب للتعامل مع الدمار هنا.
‫وبعد أن حددنا هذه الخصائص الأخرى ، سأجعل قيمة B على قيد الحياة تساوي خطأ.
‫نظرًا لأننا نضع B على قيد الحياة على خطأ ، فيمكننا معرفة ما إذا كان الخزان قد مات ومن ثم يمكننا ببساطة منع إطلاق
‫المقذوفات عن طريق التحقق من هذه القيمة المنطقية.
‫لذلك دعونا نذهب إلى Tower Dot، CP وهنا في حالة تحقق من الحريق.
‫يمكننا التأكد من أن الخزان لا يزال على قيد الحياة قبل إطلاق النار.
‫لذلك سأرى أولاً ما إذا كان الخزان صالحًا.
‫سأقول ما إذا كان الخزان يساوي مؤشر فارغ ، فسأعود ببساطة مبكرًا.
‫بهذه الطريقة نعرف أن Tank سيكون صالحًا وبعد ذلك في فحصنا لنرى ما إذا كنا في نطاق
‫إطلاق نار ، سأضيف ونرى ما إذا كان Tank على قيد الحياة.
‫إذا خزان.
‫على قيد الحياة ، ثم يمكننا إطلاق النار.
‫إذا لم يكن الدبابة على قيد الحياة ، فلن نطلق النار.
‫الآن ، قد تتساءل عما إذا كانت فكرة جيدة أم لا أن تضع العائد على سطر واحد كما رأيتني أفعل في
‫مقاطع الفيديو السابقة.
‫وهذه فرصة جيدة لمناقشة Unreal Engines وأفضل ممارسات البرمجة والتوصيات.
‫توصي ممارسات ترميز المحرك غير الواقعية بأن يكون لديك أقواس مجعدة مع جسم لجميع عبارات if الخاصة بك
‫، حتى تلك التي تحتوي على عبارة واحدة.
‫والسبب هو أنك إذا كنت تخطط لإضافة أسطر متعددة من التعليمات البرمجية إلى هذا ، فلديك بالفعل
‫الجسم هنا.
‫وهو أيضًا أكثر وضوحًا.
‫وهذا يقودني أيضًا إلى نقطة أخرى ، وهي استخدامي التلقائي.
‫لقد استخدمت auto هنا في فئة المقذوفات عدة مرات ، وعلى الرغم من أن هذا يمكن أن يكون فعالًا ، إلا
‫أنه ليس من الواضح ما هي الأنواع للوهلة الأولى ، ولهذا السبب لا يُنصح باستخدام السيارات في ممارسات ترميز
‫المحرك غير الواقعية.
‫إذا كنت تريد التمسك بممارسات الترميز الموصى بها من Unreal Engine ، فيمكنك استبدال مثيلات
‫auto بالنوع الفعلي.
‫على سبيل المثال ، هنا ، احصل على وحدة تحكم المحرض تقوم بإرجاع وحدة تحكم A حتى نتمكن من تغيير ذلك إلى وحدة
‫تحكم وهذا مؤشر.
‫هذه الفئة الثابتة من النوع الذي يتسبب في إتلاف إرجاع فئة U حتى نتمكن من استخدام صفك هنا وبالطبع الحصول
‫على مالك هنا وإرجاع ممثل حتى نتمكن من استخدام ممثل بدلاً من تلقائي هنا والآن إذا نظرت إلى هذا الرمز ، فهذا
‫كثير أكثر وضوحًا ما هي هذه الأنواع ، في حين أن نوعًا ما التلقائي يخفي كل شيء ويسمح لك
‫بأن تكون كسولًا وتفلت من كتابة الأنواع.
‫الآن في بعض الأحيان لست متأكدًا مما يعود عليه التعبير الكبير ، لذلك سأستخدم auto فقط لمعرفة
‫ما هو هذا النوع ثم سأستبدله لاحقًا بالنوع الفعلي.
‫هذه طريقة أخرى يمكنك من خلالها استخدام auto لمساعدتك على تعلم الأنواع التي تعود بتعبيرات طويلة ومعقدة
‫مثل هذه.
‫نظرًا لأننا في مراحل التلميع ، سأستبدل auto بأسماء الأنواع الفعلية هنا
‫في المقذوف.
‫سأذهب أيضًا إلى البيدق الأساسي في وظيفة إطلاق النار حيث لدينا هذا المقذوف ويتم إرجاعه من هذا
‫التعبير الطويل الكبير هنا.
‫سيعيد ممثل النشر قذيفة في هذه الحالة حتى أتمكن من استبدالها بقذيفة.
‫تمام.
‫لذلك سيؤدي ذلك إلى تلميع الكود على جانب C ++.
‫دعنا نمضي قدمًا ونجمع هذا.
‫ومع تجميع ناجح ، دعنا نعود إلى المحرر وسنبدأ اللعب ودعونا نتأكد فقط
‫من أن تلك الأبراج تتوقف عن إطلاق النار علينا بعد موتنا.
‫لذلك هناك ضربة واحدة.
‫هناك واحدة أخرى ، وأنا أنتظر ، ولا أرى أي مقذوفات أخرى.
‫في احسن الاحوال.
‫تمام.
‫لذا فإن النقطة الأخيرة التي أود تغطيتها قبل أن نختتم هذا هي نقطة تفرخ القذيفة.
‫الآن ، دعنا نختار ذلك هنا في BP Pond Tank ونتأكد من أنه متباعد بدرجة كافية عن البرميل.
‫قبل أن نفعل ذلك ، سأضعه قريبًا حقًا وأظهر لك بعض المشكلات التي
‫يمكن أن تنشأ.
‫الآن ، بينما أتقدم للأمام والنقر فوق زر الماوس الأيسر ، سترى أنني لا أرى المقذوف.
‫في الواقع ، لا أراها على الإطلاق لأنها قريبة جدًا.
‫نحن بالفعل لدينا اصطدام.
‫يتم تدميره قبل أن يتمكن من فعل أي شيء.
‫لذا تأكد من أنها بعيدة جدًا عن البرميل.
‫نحن ننتج بعض الدخان على أي حال ، لذلك سيبدو كما لو أن دخانًا يتبعه.
‫لذلك سيظل هذا يبدو واقعيًا جدًا.
‫إذاً هذا يبدو جيداً
‫وبينما نحن على نقاط تفرخ المقذوفات ، قد يكون من الجيد الذهاب وإلقاء نظرة على برج
‫بركة BP وتحديد نقطة تفرخ المقذوف.
‫وإذا كانت لديك أي مشاكل في إطلاق مقذوفات من البرج ،
‫فقد ترغب في التأكد من أنها على مسافة جيدة من فوهة البرج أيضًا.
‫لذلك لدينا ذلك.
‫لدينا لعبة وظيفية وهي تبدو رائعة.
‫لدينا القدرة على التدحرج في العالم ، ولدينا القدرة على إطلاق المقذوفات وتفجير
‫الأشياء.
‫إذا اصطدمنا ببرج ، يمكننا تدميره.
‫إذا أصابنا البرج ، يمكن أن يدمرنا.
‫مثل هذا تماما.
‫ولدينا شروط الفوز والخسارة مع أدوات HUD التي تظهر على الشاشة وتخبرنا ما إذا كنا فزنا
‫باللعبة أم خسرناها.
‫لذلك هذا رائع.
‫وإذا كنت ترغب في حزم هذه اللعبة ، فيمكنك القيام بذلك بسهولة عن طريق الانتقال إلى الأعلى والنقر
‫فوق رمز الأنظمة الأساسية إما لنظام التشغيل Windows ، إذا كنت تستخدم جهاز يعمل بنظام Windows أو لنظام iOS ، إذا كنت تستخدم
‫جهاز Mac الجهاز ، ثم بالطبع لديك هذه الخيارات الأخرى.
‫إذا كنت ترغب في حزم لأنظمة أساسية أخرى ، فإنني أوصيك بإجراء بعض الأبحاث عبر الإنترنت للبحث عن الأنظمة
‫الأساسية المختلفة وكيفية تجميعها.
‫أنا أستخدم جهاز Windows ، لذا يمكنني ببساطة النقر فوق مشروع الحزمة لنظام التشغيل Windows هنا وسيسألني
‫عن المكان الذي أرغب في حزم لعبتي فيه.
‫الآن لدي مشروعي هنا في Tune Tanks.
‫سأقوم بالنقر بزر الماوس الأيمن ، وإنشاء مجلد جديد وسأقوم ببساطة باستدعاء هذا الإصدار.
‫هذا هو المكان الذي ستضع فيه مشروعًا معبأ.
‫لذلك سأقوم بتحديد هذا المجلد والسماح لـ Unreal Engine بحزم لعبتي.
‫من المحتمل أن يستغرق الأمر بضع دقائق وبمجرد الانتهاء من ذلك ، يجب أن يكون لدي لعبة معبأة.
‫تمام.
‫لذا بمجرد أن أنتهي من التعبئة ، يجب أن نرى البناء ناجحًا في سجل الإخراج وبعد ذلك يمكننا
‫البحث في المجلد الذي حددناه لمشروعنا المعبأ.
‫بالنسبة لي ، سيكون مجلد البناء هذا.
‫الآن قمت بتعبئة أربع نوافذ ، لذا لدي مجلد Windows وهنا خزانات التوليف الخاصة بي ، dot xy.
‫إنه ملف قابل للتنفيذ.
‫يمكنني النقر عليه نقرًا مزدوجًا وهنا هو مشروعي النهائي.
‫يمكنني التصوير.
‫يمكنني المراوغة.
‫يبدو أن أبراج العدو الخاصة بي يمكنها إطلاق النار علي ويمكنني تدميرها.
‫نعم ، يمكنني تدميرهم.
‫يمكن أن يدمروني ، على ما يبدو ، ويمكنني أن أفقد اللعبة.
‫وبالطبع ، إذا كنت أكثر مهارة قليلاً ، فقد أفوز بالمباراة.
‫ولتحديك الأخير ، سأكلفك بإضافة نكهة خاصة بك إلى اللعبة.
‫اجعل هذه اللعبة خاصة بك.
‫ابحث عن بعض الأصوات أو المؤثرات أو الشبكات الجديدة وأنشئ بعض الأبراج والدبابات ذات المظهر غير التقليدي.
‫أضف المزيد من الأبراج ، وربما تضيف مستويات مختلفة من المهارة ، واجعل الأبراج أصعب وأصعب كلما
‫تقدمت في مستواك.
‫ربما قم برفع مستوى الخزان ، وامنحه مستوى يمكنك زيادته كلما دمرت المزيد والمزيد من الأبراج.
‫ربما يمكنك إضافة هندسة مستوى جديد وجعل الخزان يتسلق المنحدرات ومحاولة تدمير الدبابات في المناطق التي يصعب
‫الوصول إليها.
‫الاحتمالات لا حصر لها ، ولكن الأهم من ذلك ، استمتع.
‫أثناء قيامك بتطوير ألعابك.
‫لن توقف الفيديو مؤقتًا لهذا التحدي.
‫سيكون هذا شيئًا يمكنك القيام به من هذه النقطة فصاعدًا مع مشاريع الألعاب الخاصة بك.
‫لذا تهانينا.
‫لقد انتهينا من لعبتنا.
‫أتمنى أن تكون قد استمتعت بهذا القسم.
‫كان لدي الكثير من المرح.
‫هذا مشروع لعبة رائع وقد قطعت شوطًا طويلاً.
‫لقد تعلمت الكثير من المهارات خلال هذا القسم من الدورة التدريبية ، لذلك آمل أن تكون مستعدًا
‫للانتقال إلى أشياء أكثر إثارة.
‫شكرا جزيلا لك.
‫أنا ستيفن وسأراك قريبًا.