﻿1
00:00:04,310 --> 00:00:05,270
‫أهلا ومرحبا.

2
00:00:05,270 --> 00:00:10,280
‫في هذه المحاضرة ، سنبحث في مفهوم المتغيرات المحلية ، المتغيرات التي توجد

3
00:00:10,280 --> 00:00:12,020
‫فقط ضمن دالة معينة.

4
00:00:12,020 --> 00:00:20,030
‫وسنرى كيف يمكننا استخدام هذا لضبط موقعنا على قيمة مختلفة عن تلك المخزنة في المتجه

5
00:00:20,030 --> 00:00:21,560
‫الخاص بي.

6
00:00:21,590 --> 00:00:22,460
‫دعنا نتعمق.

7
00:00:22,640 --> 00:00:28,520
‫حتى هذه النقطة ، كنا نتعامل مع المتغيرات التي تنتمي إلى فئة.

8
00:00:28,520 --> 00:00:31,760
‫لقد فعلنا ذلك في Blueprint والآن قمنا به في C ++.

9
00:00:31,760 --> 00:00:37,190
‫وهذا يعني أن المتغير على قيد الحياة طالما أن مثيل الفئة.

10
00:00:37,190 --> 00:00:43,250
‫يحصل كل مثيل على نسخته الخاصة من المتغير ، ولكن بينما يكون مثيل الفئة على قيد الحياة ، يكون المتغير

11
00:00:43,250 --> 00:00:43,970
‫اثنين.

12
00:00:43,970 --> 00:00:47,690
‫الآن ، هذا المفهوم الذي تحدثت عنه للتو هو في الواقع له اسم.

13
00:00:47,690 --> 00:00:49,130
‫إنه يسمى Scope.

14
00:00:49,460 --> 00:00:52,640
‫ماذا يعني كم من الوقت يعيش المتغير؟

15
00:00:52,640 --> 00:00:59,510
‫ولقد وصفت للتو متغير حالة وهو متغير يستمر طوال فترة وجود مثيل معين

16
00:00:59,510 --> 00:01:00,710
‫للفئة.

17
00:01:00,860 --> 00:01:03,890
‫الآن هناك أنواع أخرى من المتغيرات أيضًا.

18
00:01:03,890 --> 00:01:07,490
‫هناك متغيرات تعيش ما دامت دالة.

19
00:01:07,490 --> 00:01:13,220
‫عندما تقوم باستدعاء وظيفة معينة ، يتم تشغيل هذه الوظيفة وبمجرد انتهاء الوظيفة

20
00:01:13,220 --> 00:01:14,960
‫، يموت المتغير.

21
00:01:15,050 --> 00:01:23,660
‫لذلك في لغة ++ C ، بشكل عام ، المتغير صالح بين الأقواس في بناء الجملة.

22
00:01:23,660 --> 00:01:25,520
‫لذلك فهي قاعدة جيدة.

23
00:01:25,520 --> 00:01:31,520
‫إنها ليست دائمًا صحيحة تمامًا ، ولكن وظيفة التجزئة ، على سبيل المثال ، لدينا

24
00:01:31,520 --> 00:01:39,740
‫بعض الأقواس هنا وإذا أردنا أن نعلن عن متغير داخل وظيفة التجزئة هذه ، فسيكون موجودًا فقط لمرة واحدة.

25
00:01:39,740 --> 00:01:44,120
‫يتم استدعاء وظيفة التجزئة وفي المرة التالية يتم إنشاؤها من جديد.

26
00:01:44,390 --> 00:01:46,070
‫المنصة المتحركة.

27
00:01:46,370 --> 00:01:48,650
‫يمكننا أن نرى ذلك إذا ألقينا نظرة على المنصة المتحركة.

28
00:01:48,980 --> 00:01:56,300
‫يمكنك رؤية المتجه الخاص بي يتم الإعلان عنه داخل بعض الأقواس المتعرجة التي تنتمي إلى تعريف

29
00:01:56,300 --> 00:02:02,390
‫الفئة ، وهذا هو السبب في أن هذه المتغيرات تعيش طوال فترة وجود مثيل للفئة.

30
00:02:02,390 --> 00:02:04,610
‫لذا أود أن أثبت لك ذلك.

31
00:02:04,610 --> 00:02:11,210
‫لذلك دعنا نذهب إلى النظام الأساسي المتحرك DHCP ودعنا ننشئ متغيرًا محليًا ضمن هذا.

32
00:02:11,210 --> 00:02:15,050
‫لذلك سأقوم بإنشائه بنفس الطريقة تمامًا كما فعلنا.

33
00:02:15,050 --> 00:02:20,960
‫عندما نعلن خطأ في ملف الرأس ، سيكون لدينا متجه F ، ثم اسم المتجه ، سأطلق

34
00:02:20,960 --> 00:02:23,090
‫عليه اسم المتجه المحلي.

35
00:02:23,720 --> 00:02:28,130
‫وبعد ذلك يمكننا تعيين هذه القيمة بشكل صحيح عند إنشائها.

36
00:02:28,130 --> 00:02:32,960
‫يمكننا فعل ذلك باستخدام الباني لمتجه F ، أو يمكننا القيام بذلك من متغير آخر ،

37
00:02:32,960 --> 00:02:35,540
‫تمامًا كما يمكننا تمرير متغير إلى دالة.

38
00:02:35,540 --> 00:02:38,870
‫لذا يمكننا أولاً استخدام طريقة الباني.

39
00:02:38,870 --> 00:02:46,040
‫إذن سيكون لدينا متجه F وسأعطيه 1 إلى 3 ثم فاصلة منقوطة في نهاية السطر.

40
00:02:46,040 --> 00:02:48,230
‫إذن هذا الآن متغير محلي.

41
00:02:48,230 --> 00:02:55,070
‫إنها موجودة فقط داخل هذه الوظيفة ويتم إعادة تعيينها في كل مرة يتم فيها استدعاء الوظيفة.

42
00:02:55,070 --> 00:03:01,010
‫لذلك إذا كنت سأفعل شيئًا كهذا ، إذا كنت سأفعل شيئًا مثل ما فعلناه في السطر

43
00:03:01,010 --> 00:03:09,410
‫29 مع تحديث المتجه الخاص بي ، فيمكننا الحصول على متجه محلي ، يمكن أن يكون لدينا المتجه المحلي z يساوي

44
00:03:09,410 --> 00:03:12,740
‫المتجه المحلي النقطة z زائد واحد.

45
00:03:12,920 --> 00:03:22,100
‫وإذا كنت سأقوم بتعيين موقعي على هذا المتجه المحلي ، فسيكون هو نفسه في كل إطار واحد لأننا

46
00:03:22,100 --> 00:03:26,240
‫نعيد الضبط والبدء من نفس الموقع.

47
00:03:26,240 --> 00:03:28,940
‫واحد ، اثنان ، ثلاثة ، كل دالة علامة واحدة.

48
00:03:28,940 --> 00:03:31,640
‫لذلك هذه الوظيفة موجودة بالفعل محليًا فقط.

49
00:03:31,640 --> 00:03:38,840
‫لذا أود منك أن تجرب تجربة صغيرة كتحدي لك لتعيين متجه محلي من المتجه الخاص بي.

50
00:03:38,840 --> 00:03:43,580
‫لذا ستفعله بشكل أساسي بدلاً من تعيينه من المُنشئ ، ستقوم بتعيينه من القيمة

51
00:03:43,580 --> 00:03:46,010
‫الموجودة حاليًا في المتجه الخاص بي.

52
00:03:46,040 --> 00:03:50,210
‫سوف يأخذ نسخة من هذا المتجه إلى المتجه المحلي الخاص بك.

53
00:03:50,510 --> 00:03:54,530
‫ثم أود منك تعيينه على الموقع باستخدام المتجه المحلي.

54
00:03:54,530 --> 00:04:00,380
‫ولأننا نحاول تحديث هذا المتجه المحلي في كل إطار ، فلنر ما هو التأثير.

55
00:04:00,380 --> 00:04:01,610
‫هل تتحرك المنصة؟

56
00:04:01,610 --> 00:04:07,490
‫هل تتوقعها وتذهب وتجربتها ، قم بتجميع مسرحية الشفرة ومعرفة ما إذا كانت تعمل بالفعل.

57
00:04:07,490 --> 00:04:09,140
‫أوقف الفيديو واذهب.

58
00:04:12,040 --> 00:04:12,640
‫تمام.

59
00:04:12,640 --> 00:04:13,630
‫مرحبًا بعودتك.

60
00:04:13,630 --> 00:04:19,600
‫لذا بدلاً من استخدام المُنشئ هنا لتعيين المتجه المحلي ، سأقوم بتعيين المتجه

61
00:04:19,600 --> 00:04:21,100
‫بدلاً من ذلك.

62
00:04:21,100 --> 00:04:28,540
‫لذلك نحن نأخذ القيمة المخزنة حاليًا في المتجه الخاص بي ونضعها في المتجه

63
00:04:28,810 --> 00:04:32,830
‫المحلي ثم نقوم بتحديث المتجه المحلي.

64
00:04:32,830 --> 00:04:39,700
‫نحن نقوم بزيادة ما يقال من خلال واحد في كل إطار ، ثم أود تعيين موقع الممثل بدلاً من المتجه

65
00:04:39,700 --> 00:04:45,070
‫الخاص بي ، سنقوم بتعيينه من المتجه المحلي بدلاً من ذلك.

66
00:04:45,460 --> 00:04:48,940
‫الآن ما الذي سيحدث في هذه الحالة ، هل تحسب؟

67
00:04:48,940 --> 00:04:51,010
‫دعنا نمضي قدما ونكتشف.

68
00:04:51,010 --> 00:04:56,620
‫سأقوم بالضغط على زر الترجمة وسأمضي قدمًا وأضغط تشغيل وسنرى أن

69
00:04:56,620 --> 00:05:03,160
‫النظام الأساسي لا يزال يتحرك إلى اليمين ، لكنه لا يرتفع في الاتجاه Z.

70
00:05:03,160 --> 00:05:09,700
‫لذلك يمكنك أن ترى أن هذا ليس له تأثير حقيقي ، زيادة المتجه المحلي لأنه يتم إعادة

71
00:05:09,700 --> 00:05:14,680
‫ضبطه من القيمة الحالية في المتجه الخاص بي ، كل إطار.

72
00:05:14,680 --> 00:05:17,350
‫ومع ذلك ، لا يزال متجهي قيد التحديث.

73
00:05:17,350 --> 00:05:19,840
‫كل إطار يتم زيادة قيمة y ، كل إطار.

74
00:05:19,840 --> 00:05:22,840
‫ولهذا السبب نرى الحركة تنتقل إلى اليمين.

75
00:05:22,840 --> 00:05:31,600
‫إذن ، إحدى الطرق التي يمكننا من خلالها أن نرى أن هذا التغيير في المتجه المحلي محلي فقط هو زيادة هذه القيمة

76
00:05:31,600 --> 00:05:33,820
‫من واحد إلى ربما 100.

77
00:05:33,820 --> 00:05:38,560
‫إذن ، نضيف 100 إلى قيمة المتجه المحلية.

78
00:05:38,770 --> 00:05:42,550
‫يمكننا أن نذهب ونجمع ثم نضغط على التشغيل.

79
00:05:42,760 --> 00:05:47,710
‫وما سترونه هو أن المنصة في الواقع أعلى بمقدار 100 وحدة في الهواء.

80
00:05:47,740 --> 00:05:55,450
‫دعنا نأخذ ثانية هنا ونخرج مع F ثمانية ونوقف اللعبة مؤقتًا باستخدام زر الإيقاف المؤقت في شريط الأدوات

81
00:05:55,450 --> 00:06:01,780
‫الرئيسي ثم حدد النظام الأساسي المتحرك الخاص بنا لإلقاء نظرة عليه في جزء التفاصيل.

82
00:06:01,780 --> 00:06:05,410
‫للقيام بذلك ، يجب أن أنقر عليه بالفعل في منفذ العرض لسبب ما.

83
00:06:05,410 --> 00:06:07,540
‫في بعض الأحيان لا ينجح الأمر ، ما عليك سوى النقر فوقه في المخطط التفصيلي.

84
00:06:08,410 --> 00:06:17,440
‫وأود أن أوضح لكم أن القيمة في المتجه ، قيمة z في المتجه أقل بمقدار

85
00:06:17,440 --> 00:06:21,970
‫100 وحدة من موقع Z للتحويل.

86
00:06:21,970 --> 00:06:27,010
‫لذا يمكنك أن ترى أن الإضافة إلى هذا المتجه المحلي كان له تأثير.

87
00:06:27,010 --> 00:06:34,150
‫لدينا موقع ، 100 وحدة أعلى من الموقع في المتجه الخاص بي.

88
00:06:34,150 --> 00:06:39,340
‫والشيء الرائع حقًا في المتغيرات المحلية هو أنه عندما تنتهي الوظيفة من تنفيذها المحدد

89
00:06:39,340 --> 00:06:41,500
‫، يتم مسحها وإعادة تعيينها.

90
00:06:41,500 --> 00:06:44,440
‫لذلك يمكنك دائمًا معرفة ما يمكن توقعه باستخدام متغير محلي.

91
00:06:44,440 --> 00:06:50,740
‫أنت تعرف دائمًا القيمة التي ستكون فيها ، على عكس متغير الفئة الذي يمكن تحديثه في

92
00:06:50,740 --> 00:06:52,720
‫أي وقت من أي وظيفة أخرى.

93
00:06:52,720 --> 00:06:57,190
‫لذلك سنضع هذه المتغيرات المحلية خلال خطواتها في بضع محاضرات.

94
00:06:57,190 --> 00:06:58,630
‫هيا بنا نتعمق.

