﻿1
00:00:04,750 --> 00:00:05,980
‫أهلا ومرحبا.

2
00:00:05,980 --> 00:00:12,010
‫في هذه المحاضرة ، سنتعلم كيف يمكننا الحصول على مخرجات من الوظائف في C ++.

3
00:00:12,010 --> 00:00:18,970
‫وسنستخدم هذا لتبسيط الكود إلى حد كبير والبدء في تنفيذ بعض من هذا الرمز الكاذب الذي

4
00:00:18,970 --> 00:00:19,870
‫كتبناه.

5
00:00:19,870 --> 00:00:20,800
‫دعنا نتعمق.

6
00:00:20,980 --> 00:00:26,350
‫لذا قبل أن نحاول فهم قيم الإرجاع من الدوال ، دعنا نأخذ منعطفًا مختصرًا ونفهمه.

7
00:00:26,350 --> 00:00:29,290
‫يضيف مفهومان هنا مفهومين آخرين إلى مسرد المصطلحات الخاص بنا.

8
00:00:29,590 --> 00:00:37,060
‫إذن أولها هو التعبير والتعبير هو جزء من الكود ينتج قيمة.

9
00:00:37,060 --> 00:00:43,180
‫وهناك البيان الذي هو جزء من الكود وهو إجراء يجب تنفيذه.

10
00:00:43,570 --> 00:00:51,130
‫الآن هذان في الواقع لهما علاقة في هذا التعبير دائمًا تقريبًا عبارة في ذلك لحساب قيمة جزء

11
00:00:51,130 --> 00:00:57,100
‫من التعليمات البرمجية ، تحتاج إلى أن يكون الإجراء الذي يجب تنفيذه.

12
00:00:57,100 --> 00:01:01,030
‫لكن الشيء نفسه ليس بالضرورة صحيحًا بالعكس.

13
00:01:01,030 --> 00:01:04,780
‫لن يمنحك البيان دائمًا قيمة.

14
00:01:04,840 --> 00:01:09,910
‫لذلك دعونا نلقي نظرة على بعض أمثلة التعبيرات وبعض الأشياء التي ليست من الكود الذي

15
00:01:09,910 --> 00:01:10,960
‫كتبناه بالفعل.

16
00:01:11,170 --> 00:01:20,410
‫لذلك عندما نكتب المتجه الخاص بي في C ++ ، فهذا تعبير لأنه يحتوي على قيمة كل ما يتم تخزينه داخل متغير

17
00:01:20,410 --> 00:01:22,510
‫المتجه الخاص بي.

18
00:01:22,510 --> 00:01:24,730
‫نفس الشيء صحيح بالنسبة للمتجه المحلي.

19
00:01:24,730 --> 00:01:32,950
‫وفي الواقع ، إذا كان لديك متجه محلي زائد z ، فهذا بحد ذاته تعبير ومتجه محلي النقطة z زائد

20
00:01:32,950 --> 00:01:33,850
‫100.

21
00:01:33,850 --> 00:01:41,620
‫هذا بحد ذاته تعبير أيضًا ، لأن المتجه المحلي z أعطاك القيمة داخل العضو Z.

22
00:01:41,620 --> 00:01:46,960
‫وعندما تضيف 100 ، فهذا يعطيك قيمة جديدة تضاف 100.

23
00:01:46,960 --> 00:01:48,700
‫إذن هذه كلها تعبيرات.

24
00:01:48,940 --> 00:01:55,360
‫ومع ذلك ، فإن الشيء الذي ليس تعبيراً هو عندما أعلنا عن المتجه المحلي وقلنا متجه F ، المتجه المحلي يساوي

25
00:01:55,360 --> 00:01:58,870
‫المتجه الخاص بي ووضعنا فاصلة منقوطة في نهاية السطر.

26
00:01:58,870 --> 00:02:01,000
‫لا يمكننا استخدام ذلك للحصول على قيمة.

27
00:02:01,000 --> 00:02:02,590
‫لا توجد قيمة هناك.

28
00:02:02,590 --> 00:02:06,370
‫إنه فقط يخبر C ++ أن هذا إجراء يمكنك تنفيذه.

29
00:02:06,370 --> 00:02:09,310
‫أريدك أن تنشئ متجهًا محليًا جديدًا.

30
00:02:09,310 --> 00:02:11,980
‫لذلك هذا ليس تعبيرا.

31
00:02:12,310 --> 00:02:17,020
‫ومع ذلك ، فإن الشيء الذي يعد تعبيرًا هو الحصول على موقع الممثل.

32
00:02:17,020 --> 00:02:20,950
‫إنها دالة نطلبها لأن هناك أقواسًا في نهايتها هنا.

33
00:02:20,950 --> 00:02:22,720
‫في الواقع ليس لدينا أي حجج هنا.

34
00:02:22,720 --> 00:02:26,290
‫هذه قائمة فارغة من الحجج ، لكنها تستدعي شيئًا ما.

35
00:02:26,290 --> 00:02:34,780
‫ولأن هذه الدالة لها قيمة معادة ، فإن الجزء الفعلي من الكود هنا هو تعبير يأخذ قيمة

36
00:02:34,780 --> 00:02:37,810
‫كل ما يتم إرجاعه من الوظيفة.

37
00:02:37,810 --> 00:02:44,350
‫وهذا في الأساس هو نفس دبابيس الإخراج التي رأيناها سابقًا في Blueprint.

38
00:02:44,350 --> 00:02:50,800
‫باستثناء ما هو مع Blueprint ، يمكنك الحصول على قيمة إخراج واحدة فقط من وظيفة.

39
00:02:50,800 --> 00:02:52,600
‫هناك قيمة إرجاع واحدة فقط.

40
00:02:52,600 --> 00:02:59,830
‫هذا ما يمكننا استخدامه هنا حيث كتبنا الكود الزائف الذي يقول الحصول على الموقع الحالي.

41
00:02:59,830 --> 00:03:02,440
‫هذا هو المكان الذي سنقوم فيه بذلك.

42
00:03:02,440 --> 00:03:08,410
‫سنحصل على الموقع باستخدام موقع نشط.

43
00:03:08,410 --> 00:03:11,320
‫لذلك دعونا ننشئ متغيرًا محليًا جديدًا هنا.

44
00:03:11,320 --> 00:03:14,650
‫سيكون لدينا متغير محلي جديد يسمى F متجه من النوع F.

45
00:03:14,650 --> 00:03:20,350
‫يجب أن يكون متجهًا من النوع F لأن هذا هو النوع الذي يتم إرجاعه من الحصول على موقع نشط.

46
00:03:20,440 --> 00:03:29,470
‫وسنطلق على هذا الموقع الحالي وسنقوم بتعيين ذلك مساويًا للنتيجة أو الحصول على التعبير موقع

47
00:03:29,470 --> 00:03:37,540
‫الممثل ثم أقواس مجموعة من الأقواس المتطابقة ثم فاصلة منقوطة لإنهاء السطر.

48
00:03:37,540 --> 00:03:44,020
‫إذا قمنا بتشريح هذا الخط قليلاً ، يمكننا أن نرى أن هذا الجزء هنا ، موقع الحصول على الممثل

49
00:03:44,020 --> 00:03:49,990
‫والأقواس هو التعبير الذي يمنحنا القيمة ، وهو الموقع الحالي للممثل.

50
00:03:50,290 --> 00:03:57,040
‫ثم نقوم بتخصيص الموقع الحالي ، والذي يتم الإعلان عنه أيضًا هنا.

51
00:03:57,040 --> 00:04:00,550
‫إذن في هذا الخط ، هذا الخط كله ليس تعبيرًا.

52
00:04:00,550 --> 00:04:03,220
‫لا قيمة للخروج منه ، إنه بيان.

53
00:04:03,220 --> 00:04:09,880
‫وعادة ما يمكنك إخبار بيان لأنه في C ++ ينتهي بفاصلة منقوطة.

54
00:04:09,880 --> 00:04:16,780
‫حسنًا ، سيسمح لنا هذا بشكل أساسي بالتخلص من المتجه والمتجهات المحلية التي

55
00:04:16,780 --> 00:04:23,650
‫استخدمناها سابقًا لأننا يجب أن نكون قادرين على تحديث المتغير المحلي هنا

56
00:04:23,650 --> 00:04:29,470
‫، هذا الموقع الحالي الذي حصلنا عليه من موقع ممثلنا.

57
00:04:29,470 --> 00:04:34,390
‫إذن ما سنفعله هو مزيد من الأسفل هنا ، لدينا تعليق يقول ، حدد الموقع.

58
00:04:34,390 --> 00:04:45,430
‫لذلك بعد سطر التعليق هذا ، سأقوم بتحديد موقع ممثل محدد باستخدام التعبير الحالي الموقع ، والذي يستخدم فقط تلك القيمة المتغيرة ثم أضع

59
00:04:45,430 --> 00:04:50,110
‫فاصلة منقوطة في نهاية السطر لأقول أن هذا الأمر برمته عبارة

60
00:04:50,110 --> 00:04:51,460
‫عن بيان.

61
00:04:51,460 --> 00:04:58,990
‫نريده أن ينفذ هذا الإجراء المعين في موقع ما ونلاحظ أنه بينما يتم وضع مسافة بادئة لتعليقاتي ، فقد

62
00:04:58,990 --> 00:05:04,120
‫قررت عدم وضع مسافة بادئة للكود للمطابقة لأننا نريد ذلك عادةً.

63
00:05:04,630 --> 00:05:09,130
‫يجب أن تكون الرموز على مستوى واحد من المسافة البادئة داخل الوظيفة.

64
00:05:09,670 --> 00:05:15,490
‫الآن ما يمكنني فعله هو أنه يمكنني إزالة كل الكود الذي كان لدينا سابقًا ، كل شيء يتضمن ناقلًا محليًا.

65
00:05:15,490 --> 00:05:18,430
‫قام المتجه الخاص بي بتعيين موقع باستخدام المتجه المحلي.

66
00:05:18,430 --> 00:05:23,830
‫يمكنني إزالة كل ذلك بحيث يكون كل ما لدينا الآن هو الأشياء المحيطة بتعليقاتنا.

67
00:05:24,040 --> 00:05:27,100
‫وسأنتقل أيضًا إلى ملف الرأس وأنظف الأشياء قليلاً هنا.

68
00:05:27,100 --> 00:05:31,420
‫لم نعد بحاجة إلى المتجه الخاص بي ، ولم نعد بحاجة إلى خصائص x الجديدة الخاصة بي.

69
00:05:31,420 --> 00:05:34,440
‫لذلك سأقوم بحذف هذه أيضًا.

70
00:05:34,450 --> 00:05:40,000
‫من الواضح الآن أن النظام الأساسي المتحرك CP لا يفعل الكثير في الواقع لأننا حصلنا على الموقع

71
00:05:40,000 --> 00:05:44,680
‫النشط الحالي ، ثم قمنا بتعيينه مرة أخرى ، والذي ليس له أي تأثير في الأساس.

72
00:05:44,680 --> 00:05:52,870
‫لذا أود منك أن تجرب تحديث الموقع الحالي للمنصة المتحركة في وظيفة التجزئة تلك.

73
00:05:52,990 --> 00:05:56,530
‫لذا استخدم أعضاء X أو Y كما تراه مناسبًا.

74
00:05:56,530 --> 00:06:03,820
‫سينقلك One X إلى الأمام ، وسوف ينقلك Y إلى اليمين ، ثم يمكنك الإضافة إليه والتعيين مرة أخرى إلى

75
00:06:03,820 --> 00:06:08,770
‫العضو ، كما فعلنا سابقًا ، لتحديث موقع منصاتنا المتحركة.

76
00:06:08,770 --> 00:06:15,940
‫لذا أضف واحدًا أو اثنين اعتمادًا على السرعة التي تريد أن تتحرك بها المنصة ، ثم قم بنقل النظام الأساسي إلى

77
00:06:15,940 --> 00:06:20,860
‫موقع البداية لأنه ليس لدينا الآن متغير العضو هذا لإخباره بموقع البداية

78
00:06:20,860 --> 00:06:23,920
‫، فنحن بالفعل نستخدم الموقع الحالي.

79
00:06:23,920 --> 00:06:28,960
‫لذا أينما وضعت هذه المنصة ، فهذا هو المكان الذي ستبدأ منه المنصة.

80
00:06:29,200 --> 00:06:35,380
‫ثم أود منك تجميع واختبار الكود الخاص بك ومعرفة ما إذا كان يتحرك ، كما تتوقع.

81
00:06:35,410 --> 00:06:37,240
‫أوقف الفيديو واذهب.

82
00:06:40,030 --> 00:06:40,360
‫تمام.

83
00:06:40,360 --> 00:06:41,240
‫مرحبًا بعودتك.

84
00:06:41,260 --> 00:06:47,230
‫لذلك سنضع هذا السطر من التعليمات البرمجية أسفل التعليق الذي يتحدث عنه ، أضف

85
00:06:47,230 --> 00:06:49,210
‫المتجه إلى هذا الموقع.

86
00:06:49,600 --> 00:06:52,900
‫والسبب في وضعه هنا هو بسبب الترتيب.

87
00:06:52,900 --> 00:06:56,830
‫نريد الحصول على الموقع الحالي وتحديثه ثم تعيينه.

88
00:06:56,860 --> 00:06:59,710
‫لا نريد أن يحدث أي شيء خارج عن السيطرة.

89
00:07:00,070 --> 00:07:04,790
‫إذا أردنا تحديثه قبل إنشاء المتغير ، حسنًا ، لن يكون هذا المتغير موجودًا.

90
00:07:04,810 --> 00:07:06,490
‫تذكر أنه متغير محلي.

91
00:07:06,520 --> 00:07:11,110
‫إنها موجودة فقط بمجرد إنشائها ضمن هذه الدعوة الخاصة للوظيفة.

92
00:07:11,110 --> 00:07:16,750
‫وإذا قمنا بذلك بعد تعيين موقع الممثل مرة أخرى ، فسيتم التخلص من هذا التعديل

93
00:07:16,750 --> 00:07:20,210
‫عندما وصلنا إلى قوس الإغلاق في الوظيفة.

94
00:07:20,260 --> 00:07:29,410
‫لذلك سنقوم بتعيين الموقع الحالي ، النقطة x ، سأستخدمها مساوية للموقع الحالي ، النقطة x زائد

95
00:07:29,410 --> 00:07:34,180
‫واحد ، ثم نضع فاصلة منقوطة في نهاية السطر.

96
00:07:34,180 --> 00:07:40,180
‫وسنعود إلى Unreal وسنضغط على زر الترجمة.

97
00:07:40,180 --> 00:07:45,640
‫وكما ذكرت ، نحن الآن بحاجة للذهاب ونقل هذه المنصة المتحركة إلى موقع البداية.

98
00:07:45,640 --> 00:07:51,490
‫لذلك سأقوم بالنقر فوق شخصية الشخص الثالث الخاصة بنا وسأقوم بنسخ موقعه عن طريق النقر بزر الماوس الأيمن على الموقع ، والضغط

99
00:07:51,490 --> 00:07:56,050
‫على نسخة ، ثم الانتقال إلى نظامنا الأساسي المتحرك ، والنقر بزر الماوس الأيمن على موقعه ، والضغط

100
00:07:56,050 --> 00:07:56,770
‫على اللصق.

101
00:07:56,770 --> 00:08:01,510
‫هذا يضع النظام الأساسي داخل لاعبنا ، وهذا ليس ما نريده في الواقع.

102
00:08:01,510 --> 00:08:09,790
‫لذلك سأقوم بنقلها قليلاً إلى يمين اللاعب مثل ذلك ويمكنني معرفة ما إذا كانت على الارتفاع المناسب.

103
00:08:09,790 --> 00:08:15,400
‫أعتقد أنني سأجعله منخفضًا قليلاً ، وهي إحدى فوائد استخدام الموقع الحالي بدلاً من

104
00:08:15,400 --> 00:08:20,560
‫متغير الموقع ، هو أنني أستطيع بالفعل رؤية أين ستكون هذه المنصة في العالم.

105
00:08:20,800 --> 00:08:27,130
‫الآن إذا تقدمت وضغطت على زر التشغيل ، يمكنك أن ترى أن المنصة تتحرك بشكل جيد في الاتجاه

106
00:08:27,130 --> 00:08:31,510
‫X ولا يزال بإمكاني القفز عليها والتحرك معها.

107
00:08:31,510 --> 00:08:32,450
‫أشياء عظيمة.

108
00:08:32,470 --> 00:08:36,490
‫الآن تعلمنا كيف تعمل قيم الإرجاع من الوظائف.

109
00:08:36,490 --> 00:08:43,160
‫لقد بدأنا حقًا في فهم الكثير من المفاهيم من المخططات في عالم C ++.

110
00:08:43,180 --> 00:08:44,890
‫سأراك في المحاضرة القادمة.

