‫أهلا ومرحبا.
‫في هذه المحاضرة ، سنتعلم ما إذا كانت العبارات ، أساسًا C ++ عبارة عن عبارات
‫فرعية وسنستخدمها لإرسال نظامنا الأساسي للخلف وللأمام.
‫دعنا نتعمق.
‫إذن ، هناك مكانان في التعليقات الآن حيث ذكرنا أنه يجب علينا القيام بشيء
‫ما إذا ذهبنا بعيدًا.
‫كيف نفعل هذا إذا.
‫حسنًا ، سابقًا في Blueprint ، فعلنا ذلك إذا كان ذلك باستخدام عقدة فرعية.
‫يوجد الآن في C ++ مفهوم مشابه ويسمى عبارة if.
‫إذن هذه عقدة فرعية كان لدينا كمثال سابقًا ، ويمكنك أن ترى أن لدينا هذا المتغير
‫، يقول ، أنا جائع ، إنه منطقي ، ويمكننا وضعه في الحالة ومن ثم يمكن أن يكون لدينا
‫إما صحيح فرع تنفيذي أو فرع تنفيذ خاطئ ويمكننا تنفيذ وظائف الكود.
‫أي شيء في Blueprint في C ++ ، فهو مشابه جدًا باستثناء أنه نصي.
‫لذلك سيكون لدينا متغير يسمى أنا جائع ، وهو منطقي ، ويمكننا فقط تحديد ما إذا كان لدينا أقواس
‫حوله.
‫ثم نفتح بعض الأقواس المتعرجة بعد عبارة if الخاصة بنا غالبًا في السطر التالي ، ثم ضمن هذه الأقواس المتعرجة
‫يمكننا تنفيذ الأشياء التي يجب أن تحدث إذا كانت صحيحة.
‫لذلك نحن نقول إذا كنت جائعًا ، فتناول الوجبات السريعة بينما لا تشاهد الزوجة ، ثم يمكننا إغلاق
‫الأقواس المتعرجة لنقول ، حسنًا ، هذه هي نهاية الأشياء التي يجب أن تحدث بشروط.
‫ثم هناك خيار أنه إذا أردنا وضع فرع خاطئ ، إذا أردنا توصيل شيء
‫ما إلى خطأ هنا ، فإننا نضع كلمة رئيسية أخرى ويمكننا بدء مجموعة ثانية من الأقواس.
‫وهنا يمكننا الاستمرار في لعب ألعاب الفيديو ومن ثم يمكننا إغلاق الأقواس.
‫الآن يمكن أن يكون لدينا هنا العديد من الخطوط كما نحب بين هذه الأقواس.
‫ليس بالضرورة أن يكون هناك سطر واحد فقط.
‫لذلك يمكنك إضافة الكثير من التعليمات البرمجية هنا إذا كنت ترغب في ذلك ، أو يمكنك فقط الحصول على سطر واحد.
‫وأيضًا مع المتغير هنا ، لا يجب أن يكون متغيرًا يتم إدخاله في عبارة if.
‫يمكن أن يكون أي تعبير يقوم بإرجاع قيمة منطقية.
‫لذا يمكنك أن تفعل القليل من استدعاء دالة هنا.
‫يمكنك استخدام عامل للحصول على نتيجة مختلفة.
‫لذلك هناك عدد قليل من الخيارات المختلفة المتاحة لنا.
‫ولكن قبل أي شيء من ذلك ، نحتاج إلى ضبط المدى المسموح به لهذه المنصة قبل
‫أن تعود.
‫وللقيام بذلك ، نحتاج إلى خاصية U.
‫لقد تم تحريك المسافة التي قطعناها حاليًا كما لو كانت مرئية في أي مكان.
‫دعنا ننشئ خاصية جديدة أعلى هنا خاصية يجب تعديلها في أي مكان لأننا نريد
‫أن نكون قادرين على تكوينها في المحرر وسأستخدم نفس فئة النظام الأساسي المتحرك من
‫أعلى ثم أسفله.
‫هنا سيكون نوعًا عائمًا لأنه سيكون مسافة وسأسميها مسافة الحركة
‫حتى نتمكن من إعطائها قيمة افتراضية.
‫سأعطيها 100 وحدة كإعداد افتراضي ، ولكن بعد ذلك من الواضح أنه يمكننا تجاوز
‫ذلك ، وتغيير ذلك في المحرر ، ومن ثم يمكننا الاستفادة من ذلك في ملف C ++.
‫إذن ، الطريقة التي سنقوم بها هي أننا قد تحركنا بالفعل المسافة المتغيرة.
‫أنا في الواقع أريد ألا أكون قادرًا على ملاحظة ذلك بعد الآن.
‫لذلك سأقوم بإزالة خاصية مرئية في أي مكان ومتغير المسافة المنقولة من ملف الرأس.
‫ثم سأعود إلى C ++ وسنضطر إلى إعلانه كمتغير محلي بدلاً من ذلك.
‫لذا فإن الطريقة السهلة لتغيير ذلك هي التمسك بعوامة أمام حركة المسافة التي تعلن بشكل أساسي أنها
‫متغير محلي هنا داخل العلامة ، مما يعني أننا نعلم أنها جديدة تمامًا في كل
‫مرة نستخدمها.
‫إذن علينا الآن عكس الاتجاه إذا ذهبنا بعيدًا جدًا.
‫لذا فإن الطريقة التي يمكننا بها القيام بذلك هي أنه يمكننا استخدام عوامل أقل من أو تساوي أو تساوي أو أكبر من العوامل
‫التي رأيناها في الماضي كعقد في المخطط.
‫لكن يمكننا الآن استخدامها كمعاملين مثل الجمع أو الضرب.
‫والطريقة التي يمكننا بها فعل ذلك هي أن نقول ، حسنًا ، حسنًا ، لقد قطعنا المسافة.
‫هل هذا أكبر من مسافة التحرك؟
‫لذا يمكننا استخدام رمز أكبر من ، وهو رمز شيفرون الصحيح.
‫وبعد ذلك يمكننا وضع مسافة التحرك ويبدو أنني سميتها بالمسافة المتحركة ، لكنني أعتقد أنها يجب أن تكون مسافة
‫الحركة.
‫لذلك كان لدي D إضافي هناك عن طريق الخطأ.
‫دعنا نزيل ذلك من ملف الرأس وترى أن هذا التعبير هنا يعيد قيمة منطقية حتى نتمكن من استخدامه
‫داخل عبارة if الخاصة بنا.
‫إذن ما يمكننا فعله هو أنه يمكننا القول إذا كان الفراغ مفتوحًا بين قوسين ثم سأقطع هذا التعبير وألصقه بين
‫تلك الأقواس.
‫إذن ، نقول إذا كانت المسافة التي تم نقلها أكبر من مسافة الحركة ، فإننا في الأساس
‫نريد عكس الاتجاه.
‫هذا ما نفعله من أجل هذا التعليق.
‫نريد عكس اتجاه الحركة وعكس اتجاه الحركة.
‫لدينا سرعة منصة.
‫لذلك دعونا نضبط سرعة المنصة على سالب نفسها ، ونعكس اتجاهها بشكل أساسي.
‫إذن سرعة المنصة تساوي.
‫سرعة المنصة السلبية.
‫لذلك سيؤدي ذلك إلى قلب سهم السرعة.
‫سأضع فاصلة منقوطة في نهاية هذا السطر ودعونا نرى ما إذا كانت هذه العبارة تعمل بالفعل بالشكل
‫الذي نريده.
‫دعنا ننتقل إلى المحرر ونضرب compile.
‫والآن بعد أن اكتمل ذلك بنجاح ، يمكننا المضي قدمًا والضغط على "التشغيل" ومعرفة ما سيحدث.
‫لذلك أتوقع أن تمضي قدمًا إلى الأمام وإلى الوراء تمامًا كما تفعل ، وهذا جيد جدًا.
‫الآن ، ما يحدث في الواقع هو أنه يتجاوز نقطة البداية قليلاً.
‫سبب ذلك.
‫لذا إذا ألقينا نظرة ، فهذه هي نقطة البداية.
‫وإذا ذهبت وضغطت على اللعب ونظرت إلى الجانب من نفس الزاوية حيث يقف اللاعب ،
‫يمكنك أن ترى أنه يسير على نفس المسافة من نقطة البداية في كل اتجاه.
‫وذلك لأنه عندما ننظر إلى ما يتم حسابه هنا ، فإن المسافة المنقولة تكون من موقع البداية
‫الذي لا يتغير أبدًا.
‫لا نقوم أبدًا بتحديث موقع البداية هذا ، لذلك نحن نسير في الاتجاه السلبي.
‫ثم سنسافر بعد ذلك بنفس المقدار الذي سافرنا فيه في الاتجاه الآخر.
‫إذاً هذه ليست الطريقة التي أريد أن يعمل بها النظام الأساسي الخاص بي.
‫لذلك سوف أتحداك لتحديث موقع البدء الخاص بك.
‫سنفعل ذلك داخل بيان if.
‫لذلك سيحدث ذلك فقط عندما نصل إلى نهاية رحلتنا وستقوم بتعيينه على الموقع الحالي بحيث
‫نقوم بشكل أساسي بإعادة تعيين نقطة البداية إلى الجانب الآخر ومن ثم يمكننا السفر في الاتجاه
‫المعاكس.
‫لذا اختبر النتائج واكتشف ما إذا كانت تعمل بالشكل الذي تتوقعه.
‫وقفة الفيديو وانطلق.
‫تمام.
‫مرحبًا بعودتك.
‫لذلك ، بعد أن عكسنا السرعة هنا ، لا يهم حقًا ما إذا كانت بعد ذلك أو قبله
‫لأنه ليس لهما تأثير على بعضهما البعض.
‫سنقوم بتعيين موقع البداية مساويًا للموقع الحالي ، مما يعني بشكل أساسي أنه في الإطار التالي ستكون المسافة
‫المنقولة صفرًا لأننا نعلم أن المسافة بين موقع البداية ونفسها
‫ستكون صفرًا.
‫دعنا نعود إلى Unreal ، واضغط على زر الترجمة.
‫وعندما يتم ذلك ، دعنا نضغط على "تشغيل" ونرى ما سيحدث الآن.
‫لذلك أتوقع أن يمضي هذا للأمام وللخلف.
‫ها أنت ذا.
‫دائمًا ما تعود نفس الكمية من الوحدات إلى موقع البداية ، ولا تعود إلى الوراء أكثر من
‫ذلك ، وهو أمر رائع.
‫فقط ما أردت أن يحدث.
‫هذا كل شيء في هذه المحاضرة تعلمنا كيفية استخدام عبارات if والتعبيرات المنطقية الخاصة بنا من أجل
‫القيام بذلك وقد سمحنا بذلك لإرسال منصتنا ذهابًا وإيابًا.
‫أشياء عظيمة.
‫سأراك في المحاضرة القادمة.