‫أهلا ومرحبا.
‫في هذه المحاضرة ، سنتعلم كيف يمكننا الحصول على مخرجات من الوظائف في C ++.
‫وسنستخدم هذا لتبسيط الكود إلى حد كبير والبدء في تنفيذ بعض من هذا الرمز الكاذب الذي
‫كتبناه.
‫دعنا نتعمق.
‫لذا قبل أن نحاول فهم قيم الإرجاع من الدوال ، دعنا نأخذ منعطفًا مختصرًا ونفهمه.
‫يضيف مفهومان هنا مفهومين آخرين إلى مسرد المصطلحات الخاص بنا.
‫إذن أولها هو التعبير والتعبير هو جزء من الكود ينتج قيمة.
‫وهناك البيان الذي هو جزء من الكود وهو إجراء يجب تنفيذه.
‫الآن هذان في الواقع لهما علاقة في هذا التعبير دائمًا تقريبًا عبارة في ذلك لحساب قيمة جزء
‫من التعليمات البرمجية ، تحتاج إلى أن يكون الإجراء الذي يجب تنفيذه.
‫لكن الشيء نفسه ليس بالضرورة صحيحًا بالعكس.
‫لن يمنحك البيان دائمًا قيمة.
‫لذلك دعونا نلقي نظرة على بعض أمثلة التعبيرات وبعض الأشياء التي ليست من الكود الذي
‫كتبناه بالفعل.
‫لذلك عندما نكتب المتجه الخاص بي في C ++ ، فهذا تعبير لأنه يحتوي على قيمة كل ما يتم تخزينه داخل متغير
‫المتجه الخاص بي.
‫نفس الشيء صحيح بالنسبة للمتجه المحلي.
‫وفي الواقع ، إذا كان لديك متجه محلي زائد z ، فهذا بحد ذاته تعبير ومتجه محلي النقطة z زائد
‫100.
‫هذا بحد ذاته تعبير أيضًا ، لأن المتجه المحلي z أعطاك القيمة داخل العضو Z.
‫وعندما تضيف 100 ، فهذا يعطيك قيمة جديدة تضاف 100.
‫إذن هذه كلها تعبيرات.
‫ومع ذلك ، فإن الشيء الذي ليس تعبيراً هو عندما أعلنا عن المتجه المحلي وقلنا متجه F ، المتجه المحلي يساوي
‫المتجه الخاص بي ووضعنا فاصلة منقوطة في نهاية السطر.
‫لا يمكننا استخدام ذلك للحصول على قيمة.
‫لا توجد قيمة هناك.
‫إنه فقط يخبر C ++ أن هذا إجراء يمكنك تنفيذه.
‫أريدك أن تنشئ متجهًا محليًا جديدًا.
‫لذلك هذا ليس تعبيرا.
‫ومع ذلك ، فإن الشيء الذي يعد تعبيرًا هو الحصول على موقع الممثل.
‫إنها دالة نطلبها لأن هناك أقواسًا في نهايتها هنا.
‫في الواقع ليس لدينا أي حجج هنا.
‫هذه قائمة فارغة من الحجج ، لكنها تستدعي شيئًا ما.
‫ولأن هذه الدالة لها قيمة معادة ، فإن الجزء الفعلي من الكود هنا هو تعبير يأخذ قيمة
‫كل ما يتم إرجاعه من الوظيفة.
‫وهذا في الأساس هو نفس دبابيس الإخراج التي رأيناها سابقًا في Blueprint.
‫باستثناء ما هو مع Blueprint ، يمكنك الحصول على قيمة إخراج واحدة فقط من وظيفة.
‫هناك قيمة إرجاع واحدة فقط.
‫هذا ما يمكننا استخدامه هنا حيث كتبنا الكود الزائف الذي يقول الحصول على الموقع الحالي.
‫هذا هو المكان الذي سنقوم فيه بذلك.
‫سنحصل على الموقع باستخدام موقع نشط.
‫لذلك دعونا ننشئ متغيرًا محليًا جديدًا هنا.
‫سيكون لدينا متغير محلي جديد يسمى F متجه من النوع F.
‫يجب أن يكون متجهًا من النوع F لأن هذا هو النوع الذي يتم إرجاعه من الحصول على موقع نشط.
‫وسنطلق على هذا الموقع الحالي وسنقوم بتعيين ذلك مساويًا للنتيجة أو الحصول على التعبير موقع
‫الممثل ثم أقواس مجموعة من الأقواس المتطابقة ثم فاصلة منقوطة لإنهاء السطر.
‫إذا قمنا بتشريح هذا الخط قليلاً ، يمكننا أن نرى أن هذا الجزء هنا ، موقع الحصول على الممثل
‫والأقواس هو التعبير الذي يمنحنا القيمة ، وهو الموقع الحالي للممثل.
‫ثم نقوم بتخصيص الموقع الحالي ، والذي يتم الإعلان عنه أيضًا هنا.
‫إذن في هذا الخط ، هذا الخط كله ليس تعبيرًا.
‫لا قيمة للخروج منه ، إنه بيان.
‫وعادة ما يمكنك إخبار بيان لأنه في C ++ ينتهي بفاصلة منقوطة.
‫حسنًا ، سيسمح لنا هذا بشكل أساسي بالتخلص من المتجه والمتجهات المحلية التي
‫استخدمناها سابقًا لأننا يجب أن نكون قادرين على تحديث المتغير المحلي هنا
‫، هذا الموقع الحالي الذي حصلنا عليه من موقع ممثلنا.
‫إذن ما سنفعله هو مزيد من الأسفل هنا ، لدينا تعليق يقول ، حدد الموقع.
‫لذلك بعد سطر التعليق هذا ، سأقوم بتحديد موقع ممثل محدد باستخدام التعبير الحالي الموقع ، والذي يستخدم فقط تلك القيمة المتغيرة ثم أضع
‫فاصلة منقوطة في نهاية السطر لأقول أن هذا الأمر برمته عبارة
‫عن بيان.
‫نريده أن ينفذ هذا الإجراء المعين في موقع ما ونلاحظ أنه بينما يتم وضع مسافة بادئة لتعليقاتي ، فقد
‫قررت عدم وضع مسافة بادئة للكود للمطابقة لأننا نريد ذلك عادةً.
‫يجب أن تكون الرموز على مستوى واحد من المسافة البادئة داخل الوظيفة.
‫الآن ما يمكنني فعله هو أنه يمكنني إزالة كل الكود الذي كان لدينا سابقًا ، كل شيء يتضمن ناقلًا محليًا.
‫قام المتجه الخاص بي بتعيين موقع باستخدام المتجه المحلي.
‫يمكنني إزالة كل ذلك بحيث يكون كل ما لدينا الآن هو الأشياء المحيطة بتعليقاتنا.
‫وسأنتقل أيضًا إلى ملف الرأس وأنظف الأشياء قليلاً هنا.
‫لم نعد بحاجة إلى المتجه الخاص بي ، ولم نعد بحاجة إلى خصائص x الجديدة الخاصة بي.
‫لذلك سأقوم بحذف هذه أيضًا.
‫من الواضح الآن أن النظام الأساسي المتحرك CP لا يفعل الكثير في الواقع لأننا حصلنا على الموقع
‫النشط الحالي ، ثم قمنا بتعيينه مرة أخرى ، والذي ليس له أي تأثير في الأساس.
‫لذا أود منك أن تجرب تحديث الموقع الحالي للمنصة المتحركة في وظيفة التجزئة تلك.
‫لذا استخدم أعضاء X أو Y كما تراه مناسبًا.
‫سينقلك One X إلى الأمام ، وسوف ينقلك Y إلى اليمين ، ثم يمكنك الإضافة إليه والتعيين مرة أخرى إلى
‫العضو ، كما فعلنا سابقًا ، لتحديث موقع منصاتنا المتحركة.
‫لذا أضف واحدًا أو اثنين اعتمادًا على السرعة التي تريد أن تتحرك بها المنصة ، ثم قم بنقل النظام الأساسي إلى
‫موقع البداية لأنه ليس لدينا الآن متغير العضو هذا لإخباره بموقع البداية
‫، فنحن بالفعل نستخدم الموقع الحالي.
‫لذا أينما وضعت هذه المنصة ، فهذا هو المكان الذي ستبدأ منه المنصة.
‫ثم أود منك تجميع واختبار الكود الخاص بك ومعرفة ما إذا كان يتحرك ، كما تتوقع.
‫أوقف الفيديو واذهب.
‫تمام.
‫مرحبًا بعودتك.
‫لذلك سنضع هذا السطر من التعليمات البرمجية أسفل التعليق الذي يتحدث عنه ، أضف
‫المتجه إلى هذا الموقع.
‫والسبب في وضعه هنا هو بسبب الترتيب.
‫نريد الحصول على الموقع الحالي وتحديثه ثم تعيينه.
‫لا نريد أن يحدث أي شيء خارج عن السيطرة.
‫إذا أردنا تحديثه قبل إنشاء المتغير ، حسنًا ، لن يكون هذا المتغير موجودًا.
‫تذكر أنه متغير محلي.
‫إنها موجودة فقط بمجرد إنشائها ضمن هذه الدعوة الخاصة للوظيفة.
‫وإذا قمنا بذلك بعد تعيين موقع الممثل مرة أخرى ، فسيتم التخلص من هذا التعديل
‫عندما وصلنا إلى قوس الإغلاق في الوظيفة.
‫لذلك سنقوم بتعيين الموقع الحالي ، النقطة x ، سأستخدمها مساوية للموقع الحالي ، النقطة x زائد
‫واحد ، ثم نضع فاصلة منقوطة في نهاية السطر.
‫وسنعود إلى Unreal وسنضغط على زر الترجمة.
‫وكما ذكرت ، نحن الآن بحاجة للذهاب ونقل هذه المنصة المتحركة إلى موقع البداية.
‫لذلك سأقوم بالنقر فوق شخصية الشخص الثالث الخاصة بنا وسأقوم بنسخ موقعه عن طريق النقر بزر الماوس الأيمن على الموقع ، والضغط
‫على نسخة ، ثم الانتقال إلى نظامنا الأساسي المتحرك ، والنقر بزر الماوس الأيمن على موقعه ، والضغط
‫على اللصق.
‫هذا يضع النظام الأساسي داخل لاعبنا ، وهذا ليس ما نريده في الواقع.
‫لذلك سأقوم بنقلها قليلاً إلى يمين اللاعب مثل ذلك ويمكنني معرفة ما إذا كانت على الارتفاع المناسب.
‫أعتقد أنني سأجعله منخفضًا قليلاً ، وهي إحدى فوائد استخدام الموقع الحالي بدلاً من
‫متغير الموقع ، هو أنني أستطيع بالفعل رؤية أين ستكون هذه المنصة في العالم.
‫الآن إذا تقدمت وضغطت على زر التشغيل ، يمكنك أن ترى أن المنصة تتحرك بشكل جيد في الاتجاه
‫X ولا يزال بإمكاني القفز عليها والتحرك معها.
‫أشياء عظيمة.
‫الآن تعلمنا كيف تعمل قيم الإرجاع من الوظائف.
‫لقد بدأنا حقًا في فهم الكثير من المفاهيم من المخططات في عالم C ++.
‫سأراك في المحاضرة القادمة.