‫أهلا ومرحبا.
‫في هذه المحاضرة سنقوم بتنفيذ وظائف أعضاء الفصل الخاصة بنا ، وننقل المنصة وتدوير المنصة.
‫سنرى كيف يمكننا إعدادهم حتى يتمكنوا من المشاركة في الحجج.
‫وسيساعدنا ذلك في تنظيم الكود الخاص بنا قليلاً.
‫دعونا نتعمق ونرى كيف يعمل هذا.
‫حتى الآن ، كنا نستخدم وظائف C ++ التي تم إنشاؤها بالفعل لنا.
‫لقد استخدمنا TIC V باستخدام لعبة كبيرة من حيث كتابة وظائفهم.
‫وقد استخدمنا أيضًا وظائف كتبها لنا الآخرون.
‫كنا نتصل بهم مثل الحصول على موقع نشط والحصول على الاسم.
‫الآن كيف يمكننا الشروع في إنشاء وظائف خاصة جديدة للمساعدة في تنظيم الكود الخاص بنا والحفاظ على هذه الوظائف
‫صغيرة وكل شيء أكثر وضوحًا؟
‫حسنًا ، لقد وضعنا بالفعل اللبنات الأساسية من خلال الاقتراب من نهاية القسم.
‫نحن نفهم الكثير عن بناء جملة C ++.
‫لذا فإن ما أريد القيام به هو في الأساس إنشاء وظيفة جديدة على المنصة المتحركة التي تسمح لنا بالحصول
‫فقط ، على سبيل المثال ، منصة نقل المكالمة.
‫لماذا اريد ان افعل ذلك؟
‫حسنًا ، نظرًا لأننا قادرون على إجراء مكالمة دالة مثل هذا يسمى MOVE Platform ، فإنه يتحدث حقًا عما
‫نحاول القيام به في الوقت الحالي.
‫لدينا الكثير من الأشياء التي تحدث في مجال التكنولوجيا ولست واضحًا تمامًا لماذا نقوم بكل
‫هذه الأشياء إذا جئت للتو وألقيت نظرة عليها ، إذا دخلت في مجال التكنولوجيا ورأيت وظيفة تقول Move
‫platform ، حسنًا ، فجأة أصبح لدي سياق لما يجب أن تفعله كل هذه الأشياء ، ولست بحاجة
‫إلى تعليق واحد لإخباري بما يحدث.
‫وسيكون هذا مفيدًا بشكل خاص عندما نضيف إلى المزيج إمكانية تدوير
‫المنصة أيضًا.
‫إذن كيف نحدد وظائف التصريح؟
‫حسنًا ، تم الانتهاء من جانب الإعلان في ملف الرأس.
‫هذا هو المكان الذي نقول فيه بشكل أساسي رأسًا على C ++ ، سيكون لدينا وظيفة ستبدو نوعًا
‫ما مثل هذا.
‫ثم في C ++ هو المكان الذي نحدد فيه الوظيفة بالفعل.
‫نعطيها الجسم ، ونخبرها بالضبط لـ C ++.
‫هذه هي الطريقة التي تعمل بها الوظيفة.
‫ودعنا نلقي نظرة على كيفية القيام بذلك.
‫لدينا بعض الأمثلة على الوظائف وقد لعبت دورًا كبيرًا.
‫لقد حصلنا على علامة وهي نقطة جيدة في الوقت المناسب لنا للنظر في الأقسام المختلفة التي لدينا في ملف
‫الرأس الخاص بنا.
‫لقد تم ذكر الجمهور والمحمية هنا وعامة الناس مرة أخرى.
‫الآن ماذا يعني هذا؟
‫هذه الكلمات الرئيسية مع النقطتين في النهاية تحدد بشكل أساسي قسمًا من إمكانية الوصول.
‫هذه الوظائف ، من أين يمكن الوصول إليها؟
‫لقد رأينا أكثر في الوضع الآمن الطبيعي.
‫هذه وظيفة نطلقها على متجه F ، لكننا نستدعيها من فئة أخرى ، وليس
‫من داخل متجه F.
‫هذا يعني أن إمكانية الوصول إلى هذه الوظيفة يجب أن تكون عامة.
‫الآن سنترك جانباً محميين للحظة فقط لأنه يصبح أكثر تعقيدًا بعض الشيء هناك.
‫ولكن هناك نوع آخر من الكلمات الرئيسية التي يمكننا استخدامها ، وهو كلمة خاصة.
‫لذلك سأضيف بعد وضع علامة ، سأضيف كلمة المفتاح الخاص.
‫لاحظ أنني لا أضع مسافة بادئة لهذه الأقسام وسنضع رمزًا في النهاية.
‫وهذا يعني أن كل ما يأتي بعد ذلك حتى القسم التالي ، الكلمة الرئيسية التالية
‫التي أدخلتها هنا ستكون خاصة.
‫هذا يعني أننا أخذنا كل هذه المتغيرات وقلنا ، مهلاً ، لا يُسمح لأي فئة أخرى بلمسها.
‫وعادة ما تكون هذه هي أفضل ممارسة.
‫لم نقم بذلك حتى هذه النقطة لأنني لم أرغب في جعل الأمور مربكة جدًا بالنسبة
‫لك.
‫لكن المتغيرات في الفصول يجب أن تكون بشكل عام أعمالهم الخاصة.
‫إنه أحد المستأجرين الأساسيين للبرمجة الموجهة للكائنات أننا نترك الفصول لإدارة متغيراتها
‫الخاصة ، ولا نصل إليها إلا باستخدام الوظائف التي يشير إليها الفصل على أنها عامة.
‫إذن ما سنفعله هنا هو أننا سنضيف المزيد من الوظائف الخاصة هنا لأننا
‫لا نريد استدعاء شيء مثل Move Platform من خارج الفصل.
‫نريد أن تدار من خلال وظيفة التجزئة الخاصة بنا.
‫فكيف نحدد الوظيفة الخاصة؟
‫حسنًا ، وضعناه في قسم خاص.
‫إذن لدينا كلمة مفتاحنا الخاص هنا.
‫سأضعها بعد المتغيرات ، وسنبدأ بنوع الإرجاع.
‫وإذا لم تُرجع الدالة أي شيء ، فإننا نكتب void للإشارة إلى عدم وجود عائد ناتج عن
‫هذه الدالة.
‫ثم نعطيها اسم وظيفة.
‫لذلك كان لدينا نظام نقل هو ما أردناه ومن ثم أعطيناها بعض الأقواس للإشارة إلى أن هذه دالة تفتح وتغلق
‫الأقواس ثم فاصلة منقوطة لإنهاء السطر ونقول ، حسنًا ، هذا كل شيء.
‫هذه هي الوظيفة التي أريد أن أعلنها هنا في ملف الرأس وكل ما يفعله.
‫تقول أن هذا هو شكل الوظيفة ، وهذا هو العائد ، وهذه هي المعلمات التي تأخذها
‫والاسم والفئة التي تنتمي إليها.
‫الآن ، لمنحه تطبيقًا فعليًا ، يتعين علينا تعريفه في ملف C ++.
‫لذلك دعنا نذهب هناك.
‫وفي نهاية الملف ، خارج أي أقواس معقوفة ، هذا هو المكان الذي نقوم فيه بذلك.
‫نبدأ مرة أخرى بنوع الإرجاع.
‫لذلك سيكون هذا باطلاً لأننا داخل ملف C ++ ، لسنا داخل الأقواس المتعرجة
‫للفصل.
‫علينا استخدام عامل تحليل النطاق لنقول إننا نحاول تحديد وظيفة من داخل فئة النظام الأساسي
‫المتحرك.
‫لذلك نكتب اسم الفصل ، وهو عبارة عن منصة متحركة ، تذكر أن هناك بادئة لتقول
‫إنه ممثل.
‫ثم نستخدم النقطتين ، والنقطتين ، ومشغل تحليل النطاق ، ثم نستخدم
‫اسم الوظيفة التي نحددها ، وهي منصة MOVE ، ثم نستخدم نفس مجموعة المعلمات كما فعلنا في ملف الرأس.
‫في هذه الحالة ، كان لدينا مجموعة فارغة من المعلمات ، لذلك لدينا الأقواس فقط.
‫ثم بدلاً من وضع فاصلة منقوطة في نهاية هذا السطر على سطر جديد ، نضع قوسًا متعرجًا
‫افتتاحيًا وقوس إغلاق مجعد مقابلة.
‫وبين هذه الأقواس المتعرجة حيث نضع رمز وظيفتنا ، رائع.
‫لذا ما أريد فعله الآن هو المحاولة والقول ، حسنًا ، كل هذه الوظائف التي لدينا هنا ، وفي الواقع
‫، سأحذف التعليقات لأننا لم نعد بحاجة إليها.
‫لقد كانت هي الشفرة الزائفة التي استخدمناها لتنفيذ هذا ، لكنها الآن تخدم الغرض منها.
‫نحن نفهم ما تفعله سطور التعليمات البرمجية.
‫سأقوم بإخراج كل شيء ما عدا وظيفة النظام الأساسي MOVE من TTIC ونسخها ولصقها في وظيفة
‫منصة MOVE بدلاً من ذلك.
‫لذلك يجب أن يعمل هذا إلى حد كبير لأننا عندما ننتقل إلى وضع علامة ، فإننا نسمي منصة النقل وتقوم
‫بتشغيل نفس الجزء من الكود.
‫ماعدا الآن قمنا بتجميعها في وظيفة وهذا يجعل من السهل علينا قراءتها وربما إعادة استخدامها
‫في المستقبل.
‫ولكن إذا قمت بذلك ، ستلاحظ وجود مشكلة.
‫نحن بصدد الوصول إلى Delta time ، وهي معلمة لم يعد لدينا وصول إليها لأنها كانت معلمة تم تمريرها إلى علامة
‫التجزئة.
‫لذا إذا أردنا الحصول على ذلك ، فنحن بحاجة إلى معلمة في وظيفتنا.
‫لذلك عندما نحدد المعلمات ، يتعين علينا القيام بذلك في مكانين.
‫تمامًا كما هو الحال عندما نحدد الوظيفة ، نعود إلى ملف الرأس وبين أقواس
‫وظيفة منصة MOVE الخاصة بنا.
‫هذا هو المكان الذي نقول فيه ما هي المعلمات التي نريدها وهي تشبه تمامًا تحديد متغير.
‫تحتاج إلى منحه نوعًا وتحتاج إلى تسميته.
‫لذلك سنقول إنه سيكون نوعًا عائمًا ويمكننا فقط تسميته دلتا تايم.
‫لا يجب أن يكون نفس الاسم.
‫يمكن أن نسميها د. ت. ، يمكن أن نسميها الوقت.
‫لكن من الأسهل إعطائها نفس الاسم لأنه بعد ذلك يكون واضحًا لأي شخص يقرأها ما يجب تمريره
‫هنا.
‫ثم في ملف C ++ ، نحتاج إلى مطابقة قائمة المعلمات.
‫لذا مرة أخرى ، يمكنك فقط القيام بذلك عن طريق النسخ واللصق أو عن طريق كتابته.
‫إذا قمت بكتابتها ، فتأكد من عدم ارتكاب أي أخطاء إملائية لأن المترجم سيشتكي.
‫لذلك سيكون لدينا عدد عشري يسمى Delta Time يتم تمريره كمعامل أو يتم تعريفه كمعامل لنقل النظام
‫الأساسي ، لكننا لم نمرره في الواقع كوسيطة لتحريك النظام الأساسي في وضع علامة.
‫وسترى أن لدي خط أحمر متعرج صغير هنا.
‫إذا قمت بالمرور فوقها ، فإنها تقول أن هناك عددًا قليلاً جدًا من الوسائط في استدعاء الوظيفة
‫لأنني قمت بتعريفها في ملف الرأس والآن في C ++ بالإضافة إلى طلب معلمة واحدة من النوع float.
‫لذلك يجب أن أقدم هذه المعلمة.
‫لذلك سوف أتأكد من أن المعلمة التي أقدمها ، والقيمة التي أقدمها تأتي
‫من متغير وقت دلتا أو معلمة وقت دلتا من علامة التجزئة.
‫لذلك من خلال ربط القيمة ، يتم تمرير القيمة إلى علامة التجزئة ، ثم يتم تمريرها
‫إلى منصة MOVE وينتهي بها الأمر في المعلمة الخاصة بنا في وظيفة منصة MOVE حيث يمكن استخدامها لتنفيذ وظائف منصة
‫MOVE الخاصة بنا.
‫لذا أود منك إنشاء وظيفة منصة الدوران الخاصة بك والتي سنقوم باستدعائها من TIC.
‫لذلك ستقوم بإضافته إلى ملف الرأس كما فعلنا لوظيفة النظام الأساسي MOVE.
‫سنقوم بإضافته إلى ملف C ++ بنفس الطريقة أيضًا.
‫لذا خذ تلميحاتك من الطريقة التي فعلنا بها هذه الوظائف ثم استدعها من وظيفة التجزئة.
‫تأكد من مرور وقت دلتا وأنك تحدد أي معلمات للسماح لك بتمرير وقت دلتا وتنفيذ
‫هيكل النظام الأساسي للتدوير بحيث يتم تسجيل خروج رسالة.
‫لن تقوم في الواقع بتدوير النظام الأساسي حتى الآن ، ولكن كعنصر نائب للتأكد من أنه يتم استدعاء
‫ذلك بالفعل ، قم بطباعة رسالة سجل باستخدام سجل واجهة المستخدم الذي تعلمناه.
‫أوقف الفيديو واذهب.
‫تمام.
‫مرحبًا بعودتك.
‫لذلك سنبدأ في ملف الرأس وسنفعل في الغالب نفس الشيء كما فعلنا مع منصة MOVE الخاصة
‫بنا.
‫سنضعه في قسم خاص بحيث لا يمكن الوصول إليه إلا داخل فصلنا.
‫سأعطيها نوع إرجاع باطل ، سنسميها منصة تدوير.
‫سنقوم بفتح قائمة المعلمات.
‫وفيه سنضع معلمة واحدة ستكون نوع تعويم.
‫سنسميها وقت دلتا ونغلق المعامِلات وننهيها بفاصلة منقوطة.
‫الآن ، معظم ما نقوم به في ملف C ++ هو نفسه تمامًا كما في ملف الرأس.
‫سأقوم في الواقع بنسخ هذا السطر ، وانتقل إلى ملف C ++ وأظهر لك ما هو مختلف.
‫لذلك سأنتقل إلى سطر فارغ جديد في نهاية الملف ، وألصقه ، ثم ما هو مختلف هنا
‫نحتاج إلى عامل تحليل النطاق في اسم الفئة.
‫لذلك سيكون لدينا منصة متحركة ، وقولون ، ومنصة دوران القولون.
‫ثم لدينا قائمة المعلمات ومن ثم لا نحتاج إلى الفاصلة المنقوطة في النهاية.
‫لذا أزل الفاصلة المنقوطة وأضف سطرًا جديدًا وأضف الأقواس المتعرجة بدلاً من ذلك وخط جديد بين هذين القوسين
‫المتعرجين.
‫إذن ما نريد القيام به هنا هو طباعة رسالة سجل.
‫لذلك سأكتب لك تسجيل الدخول.
‫ستكون مجرد رسالة عرض بسيطة.
‫وفي النص سأضع اسم منصتنا.
‫لذلك ستكون النسبة المئوية.
‫ثم سنقوم بكتابة نقطة دوارة وبعد ذلك سأقوم بتمرير الاسم.
‫الآن يمكننا وضع هذا في متغير ، ولكن نظرًا لأنه سطر قصير جدًا
‫هنا ، سأقوم فقط بكتابة نجمة ، والحصول على الاسم ثم وضع الأقواس حتى نسمي هنا اسم get.
‫هذا هو التعبير الذي يحصل على سلسلة F.
‫ثم نقوم بتحويل هذه النتيجة لوضعها في رسالة السجل الخاصة بنا.
‫لذا من جميع منصاتنا ، أتوقع أن أرى أن التدوير مطبوع ، لكن هذا لن يحدث إلا إذا أطلقت عليه بالفعل في
‫مجال التكنولوجيا.
‫لذلك دعنا ننتقل إلى وظيفة التجزئة بعد أن تتمكن منصة MOVE من إضافة سطر جديد واستدعاء منصة التدوير.
‫ونريد أن ترى ، عندما أفتح الأقواس ، فإن ذلك يعطيني تلميحًا أنني بحاجة إلى تمرير
‫مناقشة حول وقت دلتا.
‫مرة أخرى ، سنمرر نفس متغير دلتا الزمني من الداخل هنا.
‫وكما قلت ، لا يجب أن تكون الأسماء هنا هي نفسها.
‫لذلك يجب أن يتطابق وقت دلتا هذا مع وقت دلتا في غضون علامة.
‫ولكن يمكننا اختيار استدعاء المتغير داخل تاريخ النظام الأساسي المتناوب بدلاً من ذلك وفي أي مكان نستخدمه داخل النظام
‫الأساسي التدوير ، سيتعين علينا استخدام تاريخ اسم المعلمة ويمكن أن تكون الوسيطة مختلفة
‫بشكل أساسي.
‫لذلك دعونا ننتقل إلى الترجمة غير الواقعية ونضغط على الترجمة لأننا أجرينا بعض التغييرات على ملف الرأس.
‫سيكون التجميع أطول قليلاً مما كان عليه عندما قمنا بتغيير ملف C ++ وبمجرد الانتهاء
‫من التجميع ، سنمضي قدمًا ونضغط على play ونفتح سجل الإخراج.
‫ويمكنك أن ترى أننا نعرض بالفعل رسائل سجل حول كل من الأنظمة الأساسية التي يتم تدويرها.
‫لذلك يبدو أنه يتم استدعاء وظيفتنا بشكل فعال.
‫أشياء عظيمة.
‫الآن نحن نفهم كيفية إنشاء وظائفنا الخاصة التي هي أعضاء في الفصل.
‫إنها أداة مفيدة جدًا لإعادة استخدام رمز ، ولكن أيضًا لتنظيمها تمامًا كما كانت في Blueprint.
‫سأراك في المحاضرة القادمة.