‫مرحبًا بعودتك.
‫في هذا الفيديو ، سننشئ عدادًا للعد التنازلي حتى يعرف اللاعب مقدار الوقت الذي
‫يتعين عليه الانتظار قبل أن يتمكن من البدء في تحريك دبابته وتفجير الأشياء.
‫لذلك سنعرض الوقت المتبقي في مؤقت العد التنازلي حتى تبدأ اللعبة.
‫لذلك دعونا نقفز إلى المحرر ونبدأ في القيام بذلك.
‫أنا الآن هنا في Widget Blueprint ، BP Start Game Widget ، وهذا هو محرر الأدوات كما رأينا.
‫لكن ربما لاحظت في أعلى اليمين ، وجود علامتي تبويب هنا ، واحدة تقول المصمم.
‫هذا هو ما نحن فيه الآن والذي يقول الرسم البياني.
‫وإذا نقرت على الرسم البياني ، فإنه يبدو أشبه برسم بياني لحدث المخطط مع عقد الأحداث وعلامة تبويب
‫مخطط بياني هنا مع أقسام مختلفة.
‫وهذا هو المكان الذي يمكننا فيه عمل منطق المخطط.
‫الآن لدينا ثلاث عقد هنا.
‫لدينا حدث ما قبل البناء.
‫هذا مشابه للمُنشئ في C ++ ومن ثم لدينا بناء حدث مشابه لبدء اللعب.
‫لذلك هذا هو المكان الأنسب للقيام بالأشياء في بداية اللعبة لأن جميع الفئات
‫ذات الصلة يتم إنشاؤها بواسطة هذه النقطة ومن ثم لدينا علامة الحدث.
‫ومثل وظيفة التجزئة في C ++ ، يمكننا الوصول إلى Delta Time هنا.
‫لن نستخدم الآن العقدتين الأوليين ، لذا سأقوم بتمييزهما وحذفهما
‫وسنستخدم تقنية الأحداث.
‫الآن ، هدفنا من هذا الفيديو هو إظهار مقدار الوقت المتبقي ولدينا مؤقت للعد التنازلي
‫لثلاث ثوانٍ الآن في C ++.
‫أنشأنا مقبض مؤقت واستخدمنا مدير المؤقت العالمي لبدء المؤقت.
‫كل ما نقوم به هنا في المخططات مستقل عن ذلك.
‫نحن ننشئ نظامًا مختلفًا تمامًا للمنطق هنا ، وسوف يتزامن فقط مع ذلك المؤقت الذي قمنا
‫بتعيينه في C ++.
‫إذن كل هذا مختلف ومستقل عن جانب C ++.
‫الآن هنا في WB start game widget ، يمكننا إضافة متغيرات مثلما يمكننا إضافة متغيرات في C ++ هنا.
‫ضمن المخطط الخاص بي ، يمكنني النقر فوق إضافة وتحديد متغير والآن لدي متغير يسمى var جديد تسطير أسفل
‫الصفر.
‫وهنا في الأسفل في لوحة التفاصيل ، والتي هي مربكة على الجانب الأيسر ، لدينا الآن اسم المتغير
‫ونوع المتغير.
‫الآن يتم تمييزه افتراضيًا لأنه من المتوقع فقط أنك ستعيد تسمية متغيراتك بمجرد
‫إنشائها.
‫لذلك لا نحتاج إلى هذا الاسم الافتراضي.
‫سنطلق على هذا اسمنا الخاص.
‫سأسميها العد التنازلي.
‫وسيكون العد التنازلي متغيرًا عائمًا Y لأن هذا سيتتبع مقدار الوقت المتبقي
‫لدينا.
‫سأبدأها في 3 ثوانٍ وسأطرح كل إطار مقدار الوقت المنقضي منذ
‫الإطار السابق.
‫لذلك نحصل على عد تنازلي من ثلاثة إلى أسفل.
‫الآن سأقوم بالنقر فوق Compile.
‫الآن ، بمجرد النقر فوق الترجمة ، يمكنني إعطاء هذه القيمة الافتراضية عن طريق التمرير لأسفل في التفاصيل.
‫اللوحة ، تم ضبطها على صفر افتراضيًا.
‫سأقوم بضبطه على ثلاثة بشكل افتراضي لأن لدينا عد تنازلي لمدة ثلاث ثوان.
‫الوقت الآن كما هو ، هذا مجرد تعويم يسمى العد التنازلي بقيمة ثلاثة.
‫لم نقم بتغييره في الواقع ، ولكن في كل إطار من اللعبة ، أود طرح وقت دلتا ،
‫وهو مقدار الوقت المنقضي منذ الإطار السابق.
‫وبهذه الطريقة ، سيعمل Countdown باستمرار على تحديث التناقص بواسطة Delta time حتى يكون لدينا عدد
‫وقت التشغيل.
‫الآن ، إليك كيف يمكننا فعل ذلك.
‫سأقوم بالعد التنازلي من علامة التبويب My Blueprint ، انقر واسحبها هنا إلى الرسم البياني للحدث
‫ثم حررها.
‫الآن ، بمجرد أن أطلق سراحه ، لدي خياران.
‫احصل على العد التنازلي وضبط العد التنازلي.
‫إذا قمت بالنقر فوق Get Countdown ، فلدي الآن ملاحظة العد التنازلي وإذا قمت بالنقر والسحب من ناتجها
‫، فهذا يمنحني الوصول إلى قيمة العد التنازلي.
‫الآن يمكنني أيضًا النقر فوق العد التنازلي ، والسحب والنقر فوق تعيين العد التنازلي ولدينا عقدة محددة.
‫لقد رأينا كلاهما من قبل.
‫في مقاطع الفيديو السابقة ، يسمح لنا دبوس الإدخال الخاص بالمُعيِّن بتوصيل قيمة عائمة ومن ثم سيتم ضبط العد
‫التنازلي على تلك القيمة.
‫إذن كيف نطرح وقت دلتا بعيدًا عن العد التنازلي ثم نضبط ذلك على قيمة العد التنازلي؟
‫حسنًا ، يمكننا أخذ عقدة العد التنازلي الخاصة بنا هنا ويمكنني النقر عليها وسحبها واكتب رمز الطرح
‫على لوحة المفاتيح واختيار عقدة الطرح.
‫إذا قمت بتحديد ذلك ، فلدي الآن تعويم ناقص عائم أو عقدة طرح.
‫سترى أن الهدف هو مكتبة Kismet Math Library.
‫هذا يخبرك أن مكتبة Kismet Math تدعم هذه العقدة.
‫جميع العقد لديها كود C ++ في جوهرها.
‫إذن ما تفعله هذه العقدة هو أنها تأخذ مدخلين.
‫يأخذ إدخال تعويم.
‫ويستغرق إدخال تعويم ثاني.
‫الآن ، لن يغير أي من المتغيرات التي نمررها.
‫ستقوم ببساطة بإجراء عملية حسابية وإرجاع تلك القيمة الناتجة عن عملية الطرح.
‫الآن أود أن أقوم بالعد التنازلي وطرح وقت دلتا منه حتى أتمكن من أخذ دبوس الإخراج المسمى في
‫Delta time من عقدة تحديد الحدث وتوصيله مباشرة إلى الإدخال الثاني في عقدة الطرح الخاصة
‫بي.
‫إذن ما أفعله هو أنني أقوم بالعد التنازلي مطروحًا منه وقت دلتا ، ثم نحصل على النتيجة.
‫الآن العد التنازلي في البداية هو 3 ثوانٍ ووقت دلتا هو قيمة صغيرة جدًا.
‫إنه مقدار الوقت بالثواني المنقضي منذ آخر إطار.
‫لذلك سيكون هذا مبلغًا ضئيلًا.
‫إذن ، ما سينتج في المرة الأولى التي يتم فيها تنفيذ هذا هو ثلاثة ناقص مقدار ضئيل.
‫وما أود فعله هو تعيين قيمة العد التنازلي مساوية لتلك النتيجة ، كل إطار فردي.
‫لذلك يتم طرح كل إطار عد تنازلي من شيئًا فشيئًا.
‫وبهذه الطريقة ستبقي العد التنازلي من 3 ثوانٍ إلى الأسفل.
‫لذلك سوف آخذ النتيجة المرجعة من عقدة الطرح هذه وقم بتوصيلها بمدخل عقدة العد
‫التنازلي المحددة.
‫الآن ، هذا لن يفعل أي شيء إذا لم أقوم بتوصيل سلك التنفيذ من الحدث ، حدد دبوس التنفيذ
‫بدبوس الإدخال لضبط العد التنازلي.
‫إذن ما يفعله هذا الآن هو أن كل إطار يطرح وقت دلتا من العد التنازلي ، مع أخذ هذه النتيجة
‫وضبط العد التنازلي لتلك القيمة الجديدة.
‫الآن يمكننا أن نرى كيف يتصرف هذا مع عقدة سلسلة طباعة.
‫لذلك سأقوم بسحب سلسلة طباعة نوع الواضع والحصول على عقدة سلسلة طباعة.
‫ثم أرغب في طباعة قيمة العد التنازلي حتى أتمكن من أخذ القيمة المعادة من أداة الضبط ، والتي
‫ستعطينا القيمة الجديدة للعد التنازلي لكل إطار وتوصيله في عقدة السلسلة.
‫ولاحظت أنني رأيت تحويل الطفو إلى سلسلة ، وإذا قمت بتحريره الآن ، فسأحصل على عقدة تحويل ستأخذ
‫عوامة ، وتحولها إلى سلسلة ، والآن يمكننا طباعة ذلك على الشاشة.
‫لنرى الآن ماذا سيحدث إذا ضغطت على تشغيل.
‫تحقق من ذلك.
‫نرى أن هذا العدد يتم توثيقه في كل إطار ، ونحن نقوم بإرسال بريد عشوائي على الشاشة بقيمة العد التنازلي
‫وتصبح سلبية أكثر فأكثر.
‫لذا فهذه هي الخطوة الأولى لجعل عداد العد التنازلي يعمل.
‫سأغلق هذا الآن.
‫لقد رأينا أننا نطبع قيمة عائمة تحتوي على مجموعة من الفواصل العشرية.
‫وبمجرد أن نطبع القيمة على الشاشة ، لا نريد حقًا علامات عشرية ، بل نريد عددًا صحيحًا.
‫لذا أود أن أرى مقدار الثواني المتبقية بدون تلك الأرقام اللاحقة على يمين الفاصلة العشرية.
‫إذن ما أحتاجه هو عدد صحيح.
‫حسنًا ، ما يمكنني فعله هو حذف عقدة التحويل هذه وسأخذ نتيجة
‫محدد العد التنازلي وسأقوم بكتابة C E سأقوم بإغلاقها ، وهي اختصار للإغلاق.
‫ستأخذ عملية الختم قيمة عائمة وتقريبها إلى أقرب عدد صحيح.
‫لذا إذا كنا عند ثلاثة ، فلا داعي للتقريب.
‫سيعيد عددًا صحيحًا بقيمة ثلاثة.
‫ولكن إذا كنا في 2. 9 ، على سبيل المثال ، ستقوم عقدة الختم بتقريبها إلى ثلاثة.
‫وبما أن هذه القيمة تتناقص ، ستستمر في إرجاع ثلاثة حتى ننتقل إلى اثنين.
‫لذلك سنحصل دائمًا على عدد صحيح.
‫يمكنني الآن توصيل هذا بسلسلة طباعة وسترى أنه يقول تحويل عدد صحيح إلى سلسلة.
‫حتى الآن ، تأخذ عقدة الختم عددًا عشريًا ، وتقريبه إلى أقرب عدد صحيح وإرجاع قيمة العدد الصحيح.
‫والآن إذا قمت بتشغيل ، فسنرى أننا نحصل على 3 إلى 1 وصفر.
‫وبالطبع يستمر في الانخفاض لأننا لا نقول لهذا التوقف فعليًا.
‫لكن هذه بداية رائعة لأنه لدينا الآن وصول إلى عدد الثواني المتبقية ويمكننا
‫طباعة شيء ما على الشاشة استجابةً لذلك.
‫فكيف سنطبع الرسالة الصحيحة على الشاشة؟
‫ما أود فعله هو أنه عندما يتبقى لدينا 3 ثوانٍ ، أود أن تقول الأداة ، استعد.
‫عندما يتبقى لدينا ثانيتان ، أود أن تظهر الرقم الثاني.
‫عندما يتبقى لدينا ثانية واحدة ، أود إظهار الرقم واحد.
‫وعندما يتبقى لدينا 0 ثانية ، أود أن يقول النص انطلق.
‫حسنًا ، يمكننا القيام بذلك باستخدام عقد تبديل عقدة التبديل يمكنها تشغيل عدد من الأنواع المختلفة ، بما في ذلك
‫INT.
‫الآن الطريقة التي يعمل بها المحول على عقدة int هي أنه يحتوي على عدد من الحالات لعدد من القيم.
‫واستنادًا إلى القيمة التي نمررها إلى عقدة التبديل هذه ، فإنها ستقوم بأحد الأشياء.
‫على سبيل المثال ، إذا مررنا القيمة الصحيحة ثلاثة ، فسنحصل على الحالة الثلاثة التي ستؤدي
‫إلى تنفيذ الشيء الثالث.
‫لذا فإن المفتاح الموجود في العقدة النهائية يحتوي على أسطر متعددة من التنفيذ وسيتم تنفيذ أحدها فقط بناءً على.
‫المدخل.
‫الآن يمكننا استخدام مفتاح على عقدة int وتمرير عدد صحيح على سبيل المثال نتيجة عقدة الختم الخاصة بنا.
‫لذلك سأقوم بإزالة سلسلة الطباعة وسأقوم بسحب عقدة العد التنازلي واكتب مفتاح
‫التبديل على INT وحدد مفتاح التشغيل int.
‫لاحظ الآن أنه يأخذ إدخالاً من نوع عدد صحيح.
‫سأقوم بتمرير القيمة المرتجعة من عقدة الختم وألاحظ أيضًا أن لدينا خيار إضافة دبوس.
‫إذا نقرنا على ذلك ، فسترى أننا نحصل على دبوس افتراضي بالإضافة إلى الناتج الذي يقول صفر.
‫ما يقوله هذا هو أننا إذا وصلنا بعض منطق المخطط من طرف التنفيذ الصفري ، فسيتم تنفيذ
‫هذا المنطق.
‫إذا كانت قيمة الإدخال التي تم تمريرها تساوي صفرًا ، وإذا لم تكن جيدة ، فسيتم تعيينها افتراضيًا على دبوس التنفيذ
‫هذا.
‫الآن يمكننا النقر فوق إضافة دبوس مرة أخرى والآن لدينا صفر وواحد.
‫إذن يمكننا أن نحصل على سطرين للتنفيذ ، أحدهما لصفر والآخر لواحد.
‫وبعد ذلك إذا لم يكن الإدخال صفرًا أو واحدًا ، فسيتم تنفيذ كل ما تم توصيله بشكل افتراضي.
‫سأقوم بالنقر فوق علامة الجمع مرة أخرى مرتين أخريين.
‫إذن لدينا الحالات من صفر إلى ثلاثة وحالة افتراضية.
‫والآن ، يعود الأمر إلينا للتخلص من هذا وإضافة بعض منطق المخطط الذي نرغب في تنفيذه بناءً على القيمة
‫التي تم تمريرها والتي نحصل عليها من عقدة SEAL هذه.
‫وهذا ما أود أن تفعله لتحديك.
‫أرغب في طباعة رسائل مختلفة لكل حالة باستخدام عقدة سلسلة طباعة للقيمة ثلاثة التي يمكنك طباعتها
‫والاستعداد باستخدام عقدة سلسلة طباعة.
‫بالنسبة للحالتين ، يمكنك ببساطة طباعة القيمة اثنين للحالة الواحدة ، ويمكنك طباعة واحدة وللحالة
‫الصفرية يمكنك طباعة الانتقال الآن للحالة الافتراضية ، ما عليك سوى طباعة بدء اللعبة باستخدام عقدة سلسلة الطباعة الخاصة
‫بنا.
‫أوقف الفيديو مؤقتًا وأضف مجموعة كاملة من عقد سلسلة الطباعة في الرسم البياني للحدث الآن.
‫تمام.
‫لذا أود المضي قدمًا واستخدام عقدة سلسلة طباعة وسأبدأ هنا في الجزء السفلي للحالة
‫الافتراضية وسأقوم بكتابة سلسلة طباعة.
‫والسلسلة التي أود طباعتها هي بدء اللعبة.
‫الآن ، هذا اختصار.
‫إذا لم تكن تعرف عقدة سلسلة الطباعة المحددة ، فيمكنني تحريك الماوس في مكان آخر في الرسم
‫البياني للحدث والضغط على عنصر التحكم dx وسيقوم ذلك بنسخ العقدة التي حددتها.
‫سأقوم بتوصيل الحالات الثلاثة بعقدة سلسلة الطباعة هذه وسأقوم بالكتابة للاستعداد.
‫لذلك عندما يكون الإدخال في المفتاح ثلاثة ، سنرى.
‫استعد للطباعة على الشاشة.
‫سأقوم الآن بالتحكم في DX مرة أخرى وربط هذا بالحالتين ، وسأقوم بطباعة اثنين فقط الآن
‫سأقوم بنسخ عقدة سلسلة الطباعة ولأحدهما ، سأقوم بطباعة قيمة واحدة.
‫وأخيرًا ، سيتم ربط عقدة سلسلة طباعة أخيرة هنا بالحالة الصفرية وهذا
‫سيقول اذهب.
‫تمام.
‫لذا دعنا نمضي قدمًا ونجمع هذا وسأبدأ اللعب والآن أرى الاستعداد ، اثنان ، واحد
‫وانطلق.
‫وبعد ذلك بالطبع نرى بدء اللعبة بمجرد نفاد الوقت.
‫لذلك نحن نعلم أن القيمة تتناقص وتصبح سلبية أكثر فأكثر ، ولكن هذه هي الحالة الافتراضية للتبديل
‫الخاص بنا وذلك عندما نعلم أنه يمكننا بالفعل بدء اللعبة.
‫لذا فهذه هي الخطوة الأولى لإظهار مؤقت العد التنازلي الخاص بنا في عنصر واجهة المستخدم الخاص بنا.
‫نحن لا نغير النص الذي يقول استعد للتو ، لكننا سنفعل ذلك قريبًا.
‫لذلك في هذا الفيديو ، أنشأنا Countdown Logic وأضفنا ذلك إلى مخطط عنصر واجهة المستخدم الخاص بنا.
‫استخدمنا سلسلة الطباعة لإظهار قيم العد التنازلي وطباعة رسالة مختلفة.
‫بناءً على قيم العد التنازلي لدينا.
‫ما زلنا بحاجة إلى ضبط النص في الأداة ، وسنقوم بذلك في الفيديو التالي.
‫سأراك قريبا.