‫مرحبًا بعودتك.
‫الآن لدينا وضع لعب ونود استخدام وضع اللعبة لتحديد متى يمكننا بدء اللعبة.
‫الآن ، بعض الألعاب لها تأخير أو مؤقت للعد التنازلي الذي يبدأ عند بدء اللعبة.
‫وبعد فترة زمنية محددة ، يُسمح للاعب بتحريك الشخصية أو في حالتنا
‫الدبابة حول العالم.
‫لذلك سنقوم بتنفيذ ذلك في هذا الفيديو.
‫سيشمل هذا أولاً تعطيل الإدخال حتى لا يمكننا التنقل عند بدء اللعبة لأول مرة ثم
‫سنقوم بتعيين مؤقت وبعد فترة زمنية محددة ، ثم يمكننا تمكين الإدخال.
‫لذلك دعنا نعود إلى ضبط وضع لعبة الدبابات وإضافة بعض الأشياء هنا.
‫أولاً ، أود إضافة عدد عشري لمقدار الوقت الذي يجب أن يمر عند بدء اللعبة قبل أن
‫نبدأ في التحرك.
‫إذاً هذا الطفو سوف يسمى تأخير البدء وسأقوم بتهيئة هذا إلى ثلاث نقاط F حتى ننتظر
‫3 ثوان قبل أن نتمكن من بدء اللعبة.
‫الآن ، بمجرد أن تبدأ اللعبة ، أود أن أبدأ هذا المؤقت ، مما يعني أنني أرغب في وظيفة
‫ستبدأ هذا المؤقت ، وسأجعل هذه وظيفة خاصة أيضًا.
‫سأجعل هذه وظيفة باطلة تسمى بداية لعبة المقبض.
‫الآن يمكنني تنفيذ بدء تشغيل اللعبة في وضع لعبة دبابات الضبط.
‫تنزل هنا تحت ابدأ اللعب.
‫لن أنسى الآن إضافة اسم فئة وضع لعبة tune Tanks هنا والآن لدي وظيفة بدء تشغيل لعبة
‫المقبض.
‫الآن المكان المناسب لتسمية هذا سيكون "بدء اللعب".
‫منذ بدء اللعب يسمى في بداية اللعبة.
‫لذلك سأقوم باستدعاء لعبة المقبض ، ابدأ من هنا وابدأ اللعب.
‫ونظرًا لأننا نقوم بأمرين هنا في بداية اللعبة حيث نضع الدبابة وخزانات
‫الضبط واللاعبين ومتغيرات وحدة التحكم ، أود نقلها إلى التعامل مع بداية اللعبة.
‫لذلك سأقوم بتحريك هؤلاء مباشرة إلى بداية لعبة المقبض وبهذه الطريقة سيتم تعيين وحدة
‫تحكم لاعب الدبابات والدبابات لأننا ندعو لعبة المقبض تبدأ هنا وتبدأ اللعب.
‫إذن هنا هو المكان الذي أود أن أبدأ فيه مؤقت العد التنازلي وبعد ذلك يمكننا تمكين إدخال المستخدم.
‫الآن قبل أن نبدأ الموقت ، سأقوم بتعطيل الإدخال حتى لا نتمكن من تحريك الخزان الآن.
‫وهذا سيتطلب وظيفتنا.
‫وضعنا هنا في خزانات الضبط ، وحدة تحكم اللاعب تسمى الحالة الممكّنة للمشغل.
‫وهذا يعني أنني سأستخدم دبابات الضبط ، وحدة تحكم اللاعب.
‫وإذا كنت سأستخدم وحدة التحكم في مشغل tune tank ، فمن الجيد التأكد من صحتها.
‫لذلك سأقول إذا تم ضبط الدبابات ، واللاعبين ، ووحدة التحكم ، وإذا وصلنا إلى الجزء الداخلي من عبارة
‫if ، فيمكنني عندئذٍ أخذ ضبط الدبابات ، ووحدة التحكم في اللاعب ، واستدعاء الحالة الممكّنة لمشغل المجموعة والتمرير بشكل خاطئ.
‫وبهذه الطريقة لن يتمكن خزاننا من التحرك.
‫وأرى التماثيل الحمراء وهذا لأنني قلت دبابات الدبابات ، وحدة تحكم اللاعب بدلاً من ضبط الدبابات.
‫لذا ، إذا قمت بتهجئتها بشكل صحيح الآن ، فلن أحصل على أي أخطاء.
‫لذا علينا بعد ذلك أن نبدأ عداد الوقت.
‫نحن نعلم الآن أن المؤقتات تتضمن استخدام مقبض مؤقت F ويمكننا بالفعل إنشاء مقبض
‫مؤقت F بدلاً من وجود متغير عضو ينتمي إلى الفصل.
‫لذلك سأستمر في القيام بذلك وسأطلق على هذا المشغل تمكين مقبض المؤقت.
‫وبعد ذلك ، نحتاج إلى تعيين مؤقت الآن لوظيفة رد الاتصال لمؤقتنا ، أود استخدام حالة تمكين
‫المشغل المحدد ، لكن حالة تمكين المشغل المحدد هي وظيفة تتطلب إدخالًا من النوع المنطقي.
‫الآن لم نر كيفية تعيين مؤقت باستخدام رد اتصال يتطلب معلمات الإدخال.
‫سيشمل هذا مفهومًا جديدًا يسمى مفوض المؤقت.
‫لذلك دعونا نلقي نظرة على نظام المؤقت Unreal Engine.
‫مرة أخرى ، نعلم أن هناك مديرًا مؤقتًا عالميًا يدير أجهزة ضبط الوقت لدينا ولديه وظيفة ضبط المؤقت.
‫الآن هناك العديد من الأحمال الزائدة لوظيفة ضبط المؤقت.
‫لقد رأينا واحدًا منهم بالفعل.
‫الآن سأتحدث عن نسخة أخرى من هذه الوظيفة.
‫ويتطلب هذا الإصدار مقبض مؤقت أو معدل مؤقت أو وقت تأخير يجب أن ننتظر خلاله قبل استدعاء
‫وظيفة رد الاتصال.
‫وبدلاً من أخذ عنوان وظيفة رد الاتصال مباشرةً ، يمكن أن يستغرق الأمر شيئًا يسمى مفوض
‫المؤقت.
‫هذا هو هيكل مفوض من النوع F timer ، والذي يسمح لنا بإنشاء كائن يمكنه ربط وظيفة
‫مباشرة به.
‫ويمكن لمفوضي جهاز ضبط الوقت ربط الوظائف التي تتطلب معلمات الإدخال.
‫الآن يمكننا إنشاء متغير مفوض مؤقت EF وتهيئته باستخدام وظيفة إنشاء الكائن من
‫مندوب f timer.
‫سيؤدي هذا إلى إنشاء مفوض مؤقت جديد وتهيئته بناءً على ما نمرره في الأقواس.
‫سيأخذ هذا كائن المستخدم الذي هو من.
‫بالطبع ، الفئة التي توجد عليها وظيفة رد الاتصال.
‫وبعد ذلك يأخذ عنوان وظيفة رد الاتصال نفسها ، متبوعًا بأي قيم إدخال نود تمريرها
‫إلى رد الاتصال بمجرد استدعائها.
‫من هناك يمكننا الاتصال بمؤقت ضبط الوقت من مدير المؤقت العالمي واستخدام الحمل الزائد الذي يأخذ مفوض
‫المؤقت.
‫يتطلب هذا التحميل الزائد التعامل مع المؤقت نفسه ، أو مفوض المؤقت ، أو معدل التشغيل أو التعويم
‫الذي يحدد التأخير الذي سيتم استدعاء رد الاتصال قبله ، ثم منطقيًا لتحديد ما إذا كان يجب
‫أن يتكرر المؤقت أم لا حتى نعرف كيفية إنشاء مفوض مؤقت F.
‫لذا ، أود منك إنشاء واحدة في وظيفة بدء لعبة المقبض داخل عبارة if الجديدة الخاصة بنا.
‫لذا قم بإنشاء مندوب مؤقت f محلي واستخدم مندوب f timer.
‫خلق لك الكائن.
‫سنحتاج الآن إلى تمرير كائن مستخدم وعادة ما نستخدم هذا ككائن مستخدم ، لكن الوظيفة
‫التي نرغب في تسميتها موجودة في وحدة تحكم المشغل.
‫لذا فإن التمرير عبارة عن وحدة تحكم لاعب الدبابات المتغيرة حيث أن الإدخال الأول سيكون كائن المستخدم
‫وستكون وظيفة رد الاتصال هي حالة تمكين المشغل تلك الوظيفة التي أضفناها إلى وحدة تحكم المشغل المخصصة
‫لدينا.
‫لا تنس عنوان المشغل وكمدخل ثالث سنقوم بتمرير القيمة.
‫صحيح ، هذا هو ما سيتم تمريره إلى حالة تمكين مشغل المجموعة عندما يتم استدعاء رد الاتصال الخاص بنا
‫في نهاية المؤقت.
‫لذا أوقف الفيديو مؤقتًا وجرب هذا الآن.
‫لذلك ، تحت مقبض المؤقت الخاص بنا ، سأقوم بإنشاء مندوب مؤقت F محلي وسأقوم
‫باستدعاء هذا المشغل بمفوض المؤقت.
‫حسنا.
‫إذا سميته شيئًا آخر.
‫الآن سأقوم بتهيئة هذا باستخدام f timer ، تفويض ، إنشاء كائن لك.
‫وسيأخذ هذا أولاً كائن مستخدم وسيكون هذا هو جهاز التحكم في مشغل دبابات اللحن.
‫لذلك سأقول لحن وحدة تحكم لاعب الدبابات كمدخل أول.
‫وللثانية ، نحتاج إلى وظيفة رد الاتصال الخاصة بنا والتي ستكون عبارة عن مشغل خزانات ضبط ،
‫حالة تمكين مشغل مجموعة وحدة التحكم.
‫ولا يمكنني أن أنسى ، أنا بحاجة إلى عنوان المشغل لعنوان الوظيفة هذه وستكون القيمة التي أرغب
‫في تمريرها في وظيفة رد الاتصال هذه صحيحة بهذه الطريقة.
‫في نهاية وقت التأخير ، عندما يتم استدعاء رد الاتصال هذا ، ستكون القيمة التي يتم تمريرها إلى وظيفة
‫رد الاتصال.
‫الآن أنا جاهز للاتصال بمؤقت ضبط الوقت ، مما يعني أنني بحاجة إلى الاتصال بمدير مؤقت عالمي.
‫ثم من هناك يمكنني الاتصال بمؤقت ضبط الوقت.
‫والحمل الزائد للوظيفة الذي نستخدمه يأخذ أولاً مقبض مؤقت وسيكون ذلك بمثابة مقبض مؤقت
‫يمكّن المشغل.
‫المدخلات التالية التي سأمررها ستكون المندوب.
‫لذلك سيكون ذلك بمثابة تمكين للاعب ، ومفوض مؤقت.
‫التالي.
‫نحتاج إلى وقت التأخير وهذا سيكون تأخير البدء ، وهو العوامة التي أنشأناها للتو.
‫لذا سأمر بعد ذلك في تأخير البدء.
‫وأخيرًا ، لا أريد أن يكرر هذا المؤقت ، لذا سأمر بشكل خاطئ حتى لا نحصل على سلوك
‫متكرر.
‫الآن سوف أمضي قدمًا وأضع مسافة بادئة لهذه المدخلات حتى تبدو جميلة.
‫والآن نتصل بالمؤقت المحدد باستخدام مفوض المؤقت الجديد.
‫وفي نهاية وقت التأخير هذا ، يجب أن نحصل على حالة تمكين مشغل مجموعة وظيفة رد الاتصال التي تم استدعاؤها بالقيمة
‫الحقيقية التي تم تمريرها الآن نظرًا لأن تأخير البدء هو 3 ثوانٍ ، ونحن ندعو الحالة الممكّنة لمشغل
‫المجموعة إلى خطأ قبل أن نضبط جهاز ضبط الوقت.
‫عندما نضغط على "تشغيل" ، لا ينبغي أن نكون قادرين على التحرك حتى ينتهي هذا التأخير لمدة ثلاث ثوان.
‫لذلك دعونا نجمع هذا ونرى كيف يعمل.
‫لذلك سأستمر في اللعب وأحاول أن أتحرك ولا يمكنني ذلك.
‫وبعد 3 ثوانٍ يمكنني التحرك فجأة.
‫وكذلك تحقق من هذا.
‫لاحظ أن مؤشري هو الشعيرات المتصالبة.
‫قد يكون من الصعب رؤيته على الشاشة ، ولكن يجب أن تكون قادرًا على رؤيته على شاشتك على ما يرام.
‫وهذا يجعل الأمر أسهل بالنسبة لي في التصويب والتحكم في دباباتي.
‫دوران البرج.
‫في احسن الاحوال.
‫لذلك باختصار ، أنشأنا وظيفة بدء تشغيل لعبة المقبض لوضع اللعبة ونحن ندعو هذا ونبدأ
‫اللعب.
‫وقمنا أيضًا بتعيين مؤقت باستخدام مفوض مؤقت ربطنا به وظيفة الحالة الممكّنة لمشغل الضبط على وحدة
‫تحكم المشغل.
‫سمح لنا ذلك بالحصول على وظيفة رد الاتصال لجهاز ضبط الوقت الذي يأخذ معلمات الإدخال ونستخدمها لتمكين
‫إدخال المستخدم بعد تأخير لمدة ثلاث ثوان عند بدء اللعبة.
‫الآن ، قد يكون هذا محبطًا للاعب إذا لم يكن لديه نوع من الإشارات المرئية ، نوعًا من السماح
‫له بمعرفة أن الإدخال غير ممكن.
‫شيء مثل العد التنازلي على الشاشة.
‫لذلك سوف نعتني بذلك في مقاطع الفيديو المستقبلية.
‫لكن في الوقت الحالي ، تهانينا.
‫أنت تعرف الآن كيفية ربط دالة تأخذ معلمات الإدخال إلى مفوض مؤقت.
‫سأراك في الفيديو التالي.