‫أهلا ومرحبا.
‫في هذه المحاضرة ، سنبحث في مفهوم المتغيرات المحلية ، المتغيرات التي توجد
‫فقط ضمن دالة معينة.
‫وسنرى كيف يمكننا استخدام هذا لضبط موقعنا على قيمة مختلفة عن تلك المخزنة في المتجه
‫الخاص بي.
‫دعنا نتعمق.
‫حتى هذه النقطة ، كنا نتعامل مع المتغيرات التي تنتمي إلى فئة.
‫لقد فعلنا ذلك في Blueprint والآن قمنا به في C ++.
‫وهذا يعني أن المتغير على قيد الحياة طالما أن مثيل الفئة.
‫يحصل كل مثيل على نسخته الخاصة من المتغير ، ولكن بينما يكون مثيل الفئة على قيد الحياة ، يكون المتغير
‫اثنين.
‫الآن ، هذا المفهوم الذي تحدثت عنه للتو هو في الواقع له اسم.
‫إنه يسمى Scope.
‫ماذا يعني كم من الوقت يعيش المتغير؟
‫ولقد وصفت للتو متغير حالة وهو متغير يستمر طوال فترة وجود مثيل معين
‫للفئة.
‫الآن هناك أنواع أخرى من المتغيرات أيضًا.
‫هناك متغيرات تعيش ما دامت دالة.
‫عندما تقوم باستدعاء وظيفة معينة ، يتم تشغيل هذه الوظيفة وبمجرد انتهاء الوظيفة
‫، يموت المتغير.
‫لذلك في لغة ++ C ، بشكل عام ، المتغير صالح بين الأقواس في بناء الجملة.
‫لذلك فهي قاعدة جيدة.
‫إنها ليست دائمًا صحيحة تمامًا ، ولكن وظيفة التجزئة ، على سبيل المثال ، لدينا
‫بعض الأقواس هنا وإذا أردنا أن نعلن عن متغير داخل وظيفة التجزئة هذه ، فسيكون موجودًا فقط لمرة واحدة.
‫يتم استدعاء وظيفة التجزئة وفي المرة التالية يتم إنشاؤها من جديد.
‫المنصة المتحركة.
‫يمكننا أن نرى ذلك إذا ألقينا نظرة على المنصة المتحركة.
‫يمكنك رؤية المتجه الخاص بي يتم الإعلان عنه داخل بعض الأقواس المتعرجة التي تنتمي إلى تعريف
‫الفئة ، وهذا هو السبب في أن هذه المتغيرات تعيش طوال فترة وجود مثيل للفئة.
‫لذا أود أن أثبت لك ذلك.
‫لذلك دعنا نذهب إلى النظام الأساسي المتحرك DHCP ودعنا ننشئ متغيرًا محليًا ضمن هذا.
‫لذلك سأقوم بإنشائه بنفس الطريقة تمامًا كما فعلنا.
‫عندما نعلن خطأ في ملف الرأس ، سيكون لدينا متجه F ، ثم اسم المتجه ، سأطلق
‫عليه اسم المتجه المحلي.
‫وبعد ذلك يمكننا تعيين هذه القيمة بشكل صحيح عند إنشائها.
‫يمكننا فعل ذلك باستخدام الباني لمتجه F ، أو يمكننا القيام بذلك من متغير آخر ،
‫تمامًا كما يمكننا تمرير متغير إلى دالة.
‫لذا يمكننا أولاً استخدام طريقة الباني.
‫إذن سيكون لدينا متجه F وسأعطيه 1 إلى 3 ثم فاصلة منقوطة في نهاية السطر.
‫إذن هذا الآن متغير محلي.
‫إنها موجودة فقط داخل هذه الوظيفة ويتم إعادة تعيينها في كل مرة يتم فيها استدعاء الوظيفة.
‫لذلك إذا كنت سأفعل شيئًا كهذا ، إذا كنت سأفعل شيئًا مثل ما فعلناه في السطر
‫29 مع تحديث المتجه الخاص بي ، فيمكننا الحصول على متجه محلي ، يمكن أن يكون لدينا المتجه المحلي z يساوي
‫المتجه المحلي النقطة z زائد واحد.
‫وإذا كنت سأقوم بتعيين موقعي على هذا المتجه المحلي ، فسيكون هو نفسه في كل إطار واحد لأننا
‫نعيد الضبط والبدء من نفس الموقع.
‫واحد ، اثنان ، ثلاثة ، كل دالة علامة واحدة.
‫لذلك هذه الوظيفة موجودة بالفعل محليًا فقط.
‫لذا أود منك أن تجرب تجربة صغيرة كتحدي لك لتعيين متجه محلي من المتجه الخاص بي.
‫لذا ستفعله بشكل أساسي بدلاً من تعيينه من المُنشئ ، ستقوم بتعيينه من القيمة
‫الموجودة حاليًا في المتجه الخاص بي.
‫سوف يأخذ نسخة من هذا المتجه إلى المتجه المحلي الخاص بك.
‫ثم أود منك تعيينه على الموقع باستخدام المتجه المحلي.
‫ولأننا نحاول تحديث هذا المتجه المحلي في كل إطار ، فلنر ما هو التأثير.
‫هل تتحرك المنصة؟
‫هل تتوقعها وتذهب وتجربتها ، قم بتجميع مسرحية الشفرة ومعرفة ما إذا كانت تعمل بالفعل.
‫أوقف الفيديو واذهب.
‫تمام.
‫مرحبًا بعودتك.
‫لذا بدلاً من استخدام المُنشئ هنا لتعيين المتجه المحلي ، سأقوم بتعيين المتجه
‫بدلاً من ذلك.
‫لذلك نحن نأخذ القيمة المخزنة حاليًا في المتجه الخاص بي ونضعها في المتجه
‫المحلي ثم نقوم بتحديث المتجه المحلي.
‫نحن نقوم بزيادة ما يقال من خلال واحد في كل إطار ، ثم أود تعيين موقع الممثل بدلاً من المتجه
‫الخاص بي ، سنقوم بتعيينه من المتجه المحلي بدلاً من ذلك.
‫الآن ما الذي سيحدث في هذه الحالة ، هل تحسب؟
‫دعنا نمضي قدما ونكتشف.
‫سأقوم بالضغط على زر الترجمة وسأمضي قدمًا وأضغط تشغيل وسنرى أن
‫النظام الأساسي لا يزال يتحرك إلى اليمين ، لكنه لا يرتفع في الاتجاه Z.
‫لذلك يمكنك أن ترى أن هذا ليس له تأثير حقيقي ، زيادة المتجه المحلي لأنه يتم إعادة
‫ضبطه من القيمة الحالية في المتجه الخاص بي ، كل إطار.
‫ومع ذلك ، لا يزال متجهي قيد التحديث.
‫كل إطار يتم زيادة قيمة y ، كل إطار.
‫ولهذا السبب نرى الحركة تنتقل إلى اليمين.
‫إذن ، إحدى الطرق التي يمكننا من خلالها أن نرى أن هذا التغيير في المتجه المحلي محلي فقط هو زيادة هذه القيمة
‫من واحد إلى ربما 100.
‫إذن ، نضيف 100 إلى قيمة المتجه المحلية.
‫يمكننا أن نذهب ونجمع ثم نضغط على التشغيل.
‫وما سترونه هو أن المنصة في الواقع أعلى بمقدار 100 وحدة في الهواء.
‫دعنا نأخذ ثانية هنا ونخرج مع F ثمانية ونوقف اللعبة مؤقتًا باستخدام زر الإيقاف المؤقت في شريط الأدوات
‫الرئيسي ثم حدد النظام الأساسي المتحرك الخاص بنا لإلقاء نظرة عليه في جزء التفاصيل.
‫للقيام بذلك ، يجب أن أنقر عليه بالفعل في منفذ العرض لسبب ما.
‫في بعض الأحيان لا ينجح الأمر ، ما عليك سوى النقر فوقه في المخطط التفصيلي.
‫وأود أن أوضح لكم أن القيمة في المتجه ، قيمة z في المتجه أقل بمقدار
‫100 وحدة من موقع Z للتحويل.
‫لذا يمكنك أن ترى أن الإضافة إلى هذا المتجه المحلي كان له تأثير.
‫لدينا موقع ، 100 وحدة أعلى من الموقع في المتجه الخاص بي.
‫والشيء الرائع حقًا في المتغيرات المحلية هو أنه عندما تنتهي الوظيفة من تنفيذها المحدد
‫، يتم مسحها وإعادة تعيينها.
‫لذلك يمكنك دائمًا معرفة ما يمكن توقعه باستخدام متغير محلي.
‫أنت تعرف دائمًا القيمة التي ستكون فيها ، على عكس متغير الفئة الذي يمكن تحديثه في
‫أي وقت من أي وظيفة أخرى.
‫لذلك سنضع هذه المتغيرات المحلية خلال خطواتها في بضع محاضرات.
‫هيا بنا نتعمق.