﻿1
00:00:04,500 --> 00:00:05,430
‫أهلا ومرحبا.

2
00:00:05,430 --> 00:00:12,390
‫في هذه المحاضرة ، سنتعلم كيفية تعيين وظائف استدعاء الموقع في C ++ حتى نتمكن

3
00:00:12,390 --> 00:00:16,740
‫من إحضار مكعب إلى موقع جديد عندما نبدأ اللعب.

4
00:00:16,740 --> 00:00:19,500
‫كما ترون هنا ، ظهر هذا المكعب فجأة عندما بدأنا اللعب.

5
00:00:19,500 --> 00:00:23,520
‫دعنا نتعمق ونرى كيف تعمل الوظائف في C ++.

6
00:00:23,580 --> 00:00:32,010
‫لذلك دعونا نلقي نظرة على كيفية ترجمة الوظائف من Blueprint إلى C ++ ، خاصة باستخدام الوظائف في هذه المرحلة.

7
00:00:32,010 --> 00:00:36,390
‫سنلقي نظرة على كيفية إنشاء منطقتنا لاحقًا في هذا القسم.

8
00:00:36,570 --> 00:00:40,260
‫لتحديث ذاكرتك ، هذا ما تبدو عليه الوظيفة في Blueprint.

9
00:00:40,260 --> 00:00:45,630
‫يمكنك أن ترى أن لدينا عقدة ، ولدينا دبابيس إدخال على اليسار ، ودبابيس إخراج على

10
00:00:45,630 --> 00:00:50,910
‫اليمين ، ويمكننا توصيل أشياء مثل متغير في طرف إدخال لفعل الشيء نفسه في C ++.

11
00:00:50,910 --> 00:00:55,170
‫يبدو أنك تستخدم مرة أخرى أسماء الوظائف التي لا تحتوي على مسافات.

12
00:00:55,170 --> 00:01:00,720
‫لذا فبدلاً من الحصول على عقدة موقع ممثل محدد ككلمات منفصلة ، نجعلها تعمل معًا

13
00:01:00,720 --> 00:01:03,690
‫باستخدام حالة الجمل ثم لدينا الأقواس.

14
00:01:03,690 --> 00:01:10,440
‫وداخل الأقواس لدينا قائمة من المدخلات ويمكن أن تكون هذه المدخلات أكثر من واحد.

15
00:01:10,440 --> 00:01:14,460
‫يمكنك فصلهم بفاصلة ، ولكن في المقام الأول ، سيكون لدينا واحدة فقط.

16
00:01:14,550 --> 00:01:18,000
‫وهذه المدخلات تسمى في الواقع الحجج.

17
00:01:18,000 --> 00:01:20,670
‫لا تسألني لماذا لا أريد الخوض في جدال حول هذا الموضوع.

18
00:01:20,670 --> 00:01:27,870
‫لذا سيتعين علينا وضع هذه المتغيرات ، لكن لا يتعين عليك تمرير المتغيرات.

19
00:01:27,870 --> 00:01:29,130
‫المتغيرات هي مجرد طريقة واحدة للقيام بذلك.

20
00:01:29,130 --> 00:01:30,960
‫يمكنك تمرير القيم أيضًا.

21
00:01:30,960 --> 00:01:36,600
‫لذلك إذا كان لدينا موقف مثل هذا حيث أردنا فقط تعيين الموقع على 1

22
00:01:36,600 --> 00:01:44,820
‫إلى 3 ، فيمكننا القيام بذلك في C ++ أيضًا باستخدام مُنشئ F Vector مباشرة داخل أقواس الدالة.

23
00:01:44,820 --> 00:01:51,060
‫هذا يعني أننا قمنا بتعيينها على قيمة محددة بدلاً من القيمة الموجودة داخل المتغير.

24
00:01:51,060 --> 00:01:52,620
‫لذلك دعونا نجرب ذلك.

25
00:01:52,620 --> 00:01:59,790
‫سننتقل إلى رمز Visual Studio وسنلقي نظرة على بدء التشغيل بعد تحديث My

26
00:01:59,790 --> 00:02:01,710
‫Vector مباشرة.

27
00:02:01,950 --> 00:02:07,470
‫سأضيف سطرين جديدين وسأبدأ في كتابة موقع الممثل المحدد ، وتأكد من

28
00:02:07,470 --> 00:02:13,020
‫كتابته بشكل صحيح لأن الأسماء يجب أن تتطابق تمامًا في C ++ ، ثم تفتح

29
00:02:13,020 --> 00:02:18,360
‫الأقواس الخاصة بك وهنا نذهب إلى إنشاء قيمة متجهية جديدة F.

30
00:02:18,360 --> 00:02:22,950
‫سنقوم بكتابة متجه F لفتح الأقواس مرة أخرى.

31
00:02:22,950 --> 00:02:28,470
‫وهنا نقوم بالفعل بتمرير الحجج إلى منشئ F Vector.

32
00:02:28,470 --> 00:02:33,750
‫لذا فإن هذا يشبه إلى حد كبير استدعاء دالة ثم تمرير قيمة هذه الدالة إلى دالة

33
00:02:33,750 --> 00:02:34,320
‫أخرى.

34
00:02:34,320 --> 00:02:36,870
‫لكننا سنتحدث أكثر عن هذا النوع من الأشياء لاحقًا.

35
00:02:36,870 --> 00:02:43,560
‫وما يمكننا فعله هنا هو كتابة واحد ، فاصلة اثنين ، فاصلة ثلاثة ، وهذا يعني أن متجه f ، واحد ،

36
00:02:43,560 --> 00:02:48,990
‫اثنان ، ثلاثة سيتم تمريره إلى موقع الممثل المحدد ، ثم يمكننا وضع فاصلة منقوطة

37
00:02:48,990 --> 00:02:50,910
‫في نهاية خط مكتمل.

38
00:02:50,910 --> 00:02:53,070
‫لذلك دعونا نذهب إلى الأمور غير الواقعية.

39
00:02:53,070 --> 00:02:56,490
‫دعنا نمضي قدمًا ونجمع الكود.

40
00:02:56,490 --> 00:03:02,550
‫ولكي نكون قادرين على رؤية تأثير هذا ، نحتاج إلى الذهاب إلى ممثل النظام الأساسي المتحرك الخاص بنا وستلاحظ

41
00:03:02,550 --> 00:03:07,530
‫أنه لا يوجد في الواقع أي مكونات لهذا الممثل ، مما يعني أنه لا يمكن أن يكون له موقع في الواقع

42
00:03:07,530 --> 00:03:09,840
‫لأن المكونات فقط يمكن أن يعطيه مكانة.

43
00:03:09,840 --> 00:03:16,170
‫لذلك يمكننا المضي قدمًا وإضافة شيء مثل المكعب إلى ممثل النظام الأساسي المتحرك هذا أو الانتقال

44
00:03:16,170 --> 00:03:24,720
‫إلى الإعلان في جزء التفاصيل وننزل إلى Cube وهذا يعطينا مكعبًا ويمكننا المضي قدمًا والضغط على "تشغيل" ومعرفة ما إذا كنا "

45
00:03:24,720 --> 00:03:27,210
‫إعادة تعيين هذا العمل كموقع.

46
00:03:27,210 --> 00:03:32,700
‫يمكننا النقر فوق النظام الأساسي المتحرك ومن ثم يمكننا الإخراج باستخدام زر الإخراج في شريط الأدوات ثم النقر نقرًا مزدوجًا

47
00:03:32,700 --> 00:03:34,110
‫فوق النظام الأساسي المتحرك.

48
00:03:34,110 --> 00:03:37,980
‫ويمكنك أن ترى أنه يأخذنا إلى موقع المنصة المتحركة.

49
00:03:37,980 --> 00:03:45,090
‫وباستخدام ذلك المحدد في الخارج أو في عرض المشهد ، يمكننا إلقاء نظرة على جزء التفاصيل ويمكننا رؤية

50
00:03:45,090 --> 00:03:45,810
‫ذلك.

51
00:03:45,810 --> 00:03:51,720
‫من المؤكد أن التحويل يقول أن موقعه هو واحد ، اثنان ، ثلاثة.

52
00:03:51,720 --> 00:03:55,530
‫لقد قمنا بتعيين ذلك بشكل صحيح في كود C ++.

53
00:03:55,530 --> 00:04:02,250
‫الآن بالنسبة لهذا الجزء التالي ، سيكون الأمر محيرًا إذا قمنا بتعيين قيمة Y للمتجه

54
00:04:02,610 --> 00:04:04,500
‫من متغير x الخاص بي.

55
00:04:04,500 --> 00:04:06,780
‫لذلك دعونا نحذف هذا السطر ونبدأ اللعب من أجلي.

56
00:04:06,780 --> 00:04:13,380
‫هذا هو السطر 19 وسأحذف عددًا قليلاً من الأسطر الفارغة الإضافية هناك بحيث يكون لدينا واحدًا بين أكبر

57
00:04:13,380 --> 00:04:16,080
‫اللاعبين في اللعب وموقع الممثل المحدد.

58
00:04:16,320 --> 00:04:22,230
‫ثم أود أن أتحداك لاستخدام متغير بدلاً من إنشاء متجه f في مكانه.

59
00:04:22,230 --> 00:04:26,580
‫لذا استبدل مُنشئ المتجه F الذي نستخدمه.

60
00:04:26,610 --> 00:04:31,800
‫قم بتحديث المتجه الخاص بي بحيث يكون له موقع مختلف.

61
00:04:31,800 --> 00:04:35,010
‫هل يمكنك إحضاره بحيث يكون أقرب إلى اللاعب؟

62
00:04:35,010 --> 00:04:40,680
‫عندما نضغط على play ، يتم وضع المكعب في مكان ما حيث يمكن للاعب رؤيته.

63
00:04:40,680 --> 00:04:42,480
‫أوقف الفيديو واذهب.

64
00:04:45,390 --> 00:04:47,080
‫أهلا ومرحبا بكم مرة أخرى.

65
00:04:47,100 --> 00:04:54,120
‫إذاً ، الطريقة التي نقوم بها هي إزالة متجه F هذا والأقواس والوسيطات ، وهذا ما

66
00:04:54,120 --> 00:04:55,260
‫يسمى ، تذكر؟

67
00:04:55,260 --> 00:05:02,520
‫وبعد ذلك في الحجة لتحديد موقع الممثل ، سنقوم بكتابة المتجه الخاص بي.

68
00:05:02,520 --> 00:05:09,630
‫لذلك سوف تستخدم القيمة الموجودة داخل متغير المتجه الخاص بي لتعيين موقع الممثل عند بدء اللعب عندما

69
00:05:09,630 --> 00:05:10,920
‫نبدأ اللعب.

70
00:05:10,920 --> 00:05:14,220
‫لذلك دعونا نذهب إلى الأمور غير الواقعية ، فلنتوقف عن اللعب الآن.

71
00:05:14,220 --> 00:05:18,750
‫دعونا نلقي نظرة على موقع شخصية الشخص الثالث لدينا.

72
00:05:18,750 --> 00:05:22,110
‫يمكننا أن نرى أن هذا هو الموقع هنا.

73
00:05:22,110 --> 00:05:25,080
‫ما يمكنني فعله بالفعل ، يمكنك نسخ كل منها يدويًا.

74
00:05:25,080 --> 00:05:30,510
‫يمكنك في الواقع النقر بزر الماوس الأيمن فوق الموقع ، والنقر فوق نسخ ، والانتقال إلى النظام الأساسي المتحرك الخاص بك.

75
00:05:30,780 --> 00:05:38,280
‫وحيث يكون لدينا المتجه الخاص بي ، يمكننا النقر بزر الماوس الأيمن والضغط على لصق وسوف نقوم بلصق المتجه

76
00:05:38,280 --> 00:05:39,540
‫بالكامل هناك.

77
00:05:39,540 --> 00:05:44,010
‫نعلم الآن أنني أقوم بنقل Platform Cube هنا عند 000.

78
00:05:44,010 --> 00:05:48,810
‫لكن إذا قمت بتشغيل ، حسنًا ، في الواقع لا يحدث الكثير لأنني نسيت التجميع.

79
00:05:48,810 --> 00:05:53,280
‫هذا هو الشيء الذي يجب تذكره دائمًا أننا بحاجة إلى تجميع أي تغييرات على C ++.

80
00:05:53,280 --> 00:05:59,790
‫لذلك يجب أن نضغط على زر الترجمة هذا وفقط عندما يكتمل ذلك سنرى التغييرات التي أجريناها بالفعل.

81
00:05:59,790 --> 00:06:01,500
‫لذلك دعونا نمضي قدما ونضرب اللعب.

82
00:06:01,500 --> 00:06:02,310
‫وها أنت ذا.

83
00:06:02,310 --> 00:06:06,870
‫لدينا المكعب يقف أمام لاعبنا مباشرة.

84
00:06:06,870 --> 00:06:11,610
‫لذلك قمنا بنقله بنجاح لبدء اللعب باستخدام كود C ++.

85
00:06:11,610 --> 00:06:12,390
‫أشياء عظيمة.

86
00:06:12,390 --> 00:06:14,070
‫سأراك في المحاضرة القادمة.

