﻿1
00:00:04,260 --> 00:00:05,890
‫أهلا ومرحبا بكم مرة أخرى.

2
00:00:05,910 --> 00:00:11,130
‫الآن ، لقد أنشأنا بالفعل فئة المقذوفات الخاصة بنا ، ونحن مستعدون لبدء إنتاج هذه الأشياء

3
00:00:11,130 --> 00:00:15,660
‫في المستوى حتى نتمكن من إطلاقها في الأبراج وتدميرها في النهاية.

4
00:00:15,660 --> 00:00:19,950
‫الآن ، سوف يقوم ممثلو التفريخ بإشراك وظيفة ممثل التكاثر.

5
00:00:19,950 --> 00:00:22,470
‫لذلك سوف نتعلم كيف يعمل هذا في هذا الفيديو.

6
00:00:22,470 --> 00:00:25,290
‫الآن ، دعنا نتحدث عن تفريخ القذيفة.

7
00:00:25,320 --> 00:00:29,130
‫هذا شيء نود القيام به من جانب الأشياء C ++.

8
00:00:29,130 --> 00:00:34,590
‫سنقوم باستدعاء وظائف C ++ لإنشاء كائنات جديدة ديناميكيًا في العالم.

9
00:00:34,590 --> 00:00:41,610
‫نحن الآن ننتج من جانب C ++ للأشياء ، لكننا نرغب في إنتاج كائن بناءً على مخطط فئة المقذوفات

10
00:00:41,610 --> 00:00:43,110
‫لدينا.

11
00:00:43,110 --> 00:00:50,040
‫السبب هو أن لدينا مخططًا يعتمد على فئة A Projectile C ++ ، والتي تحتوي على معلومات

12
00:00:50,040 --> 00:00:51,030
‫إضافية.

13
00:00:51,030 --> 00:00:54,270
‫على وجه التحديد ، لديها مجموعة خصائص الشبكة.

14
00:00:54,270 --> 00:00:57,780
‫لقد اخترنا الشبكة لمكوننا الشبكي الثابت.

15
00:00:57,780 --> 00:01:00,510
‫لذلك لا يمكننا إنتاج إصدار C ++ فقط.

16
00:01:00,510 --> 00:01:04,590
‫يجب أن ننتج نسخة المخطط من أجل الحصول على تلك الشبكة.

17
00:01:04,590 --> 00:01:10,650
‫إذن السؤال هو كيف ننتج كائنًا في C ++ ، والذي يعتمد على مخطط؟

18
00:01:10,650 --> 00:01:15,810
‫حسنًا ، سوف نتعلم شيئًا يسمى PT Subclass الآن هذا هو القالب.

19
00:01:15,810 --> 00:01:20,730
‫ومثل العديد من القوالب ، ستتطلب أقواس الزاوية نوعًا.

20
00:01:20,730 --> 00:01:24,480
‫لذا فإن استخدام فئة PT الفرعية لـ يتطلب معلمة نوع.

21
00:01:24,480 --> 00:01:29,790
‫وهذا يسمح لنا بالحصول على متغير يخزن شيئًا يسمى فئة U.

22
00:01:29,790 --> 00:01:37,350
‫تمثل فئة U نوعًا من الفئة ، ولكنها تتمتع أيضًا بالقدرة على التفاعل مع نظام انعكاس المحرك غير الواقعي.

23
00:01:37,350 --> 00:01:43,290
‫عندما أقول انعكاس ، أعني تبادل المعلومات بين C ++ وجانب المخطط.

24
00:01:43,320 --> 00:01:50,700
‫تسمح لنا فئة PT الفرعية ، كما يوحي الاسم ، بتخزين متغير يمثل فئة بناءً على النوع الذي

25
00:01:50,700 --> 00:01:54,870
‫نمرره أو فئة فرعية من هذا النوع المختار.

26
00:01:54,870 --> 00:02:01,560
‫هذا يعني أنه يمكننا اختيار النوع والفئة الفرعية t يمكن أن تحتوي على فئة u تمثل هذا النوع أو

27
00:02:01,560 --> 00:02:02,880
‫أي نوع مشتق منه.

28
00:02:02,880 --> 00:02:06,360
‫وهذا يشمل المخططات بناءً على النوع.

29
00:02:06,360 --> 00:02:09,090
‫فلنرَ كيف تعمل هذه الفئة الفرعية t للأشياء.

30
00:02:09,090 --> 00:02:09,380
‫تمام.

31
00:02:09,390 --> 00:02:15,270
‫لذا عدت إلى هنا في قاعدة بوم والسبب في وجودي في قاعدة القاعدة هو أننا نريد أن تكون هذه

32
00:02:15,270 --> 00:02:17,880
‫المقذوفة على فئتي الخزان والبرج.

33
00:02:17,880 --> 00:02:20,910
‫كلتا هاتين الفئتين ستنتجان مقذوفات.

34
00:02:20,910 --> 00:02:23,700
‫لذا أود هنا فئة t فرعية للمتغير.

35
00:02:23,700 --> 00:02:30,930
‫لذا سأقول أن فئة t الفرعية وفي الأقواس المعقوفة علينا أن نمرر في نوع ما.

36
00:02:30,930 --> 00:02:34,740
‫يمكننا الآن إعادة الإعلان عن أقواس الزاوية الداخلية حتى على هذا النحو.

37
00:02:34,740 --> 00:02:37,440
‫وسأجعل النوع مقذوفًا.

38
00:02:37,440 --> 00:02:42,690
‫والسبب هو أننا أنشأنا فئة المقذوف ونوعها هو المقذوف.

39
00:02:42,690 --> 00:02:47,940
‫لذلك سأقوم بإنشاء هذا المتغير وسأطلق عليه فئة المقذوفات.

40
00:02:47,940 --> 00:02:54,960
‫الآن ، سيسمح لنا هذا بالحصول على متغير C ++ يمثل نوع فئة ، ويمكن أن يعتمد النوع

41
00:02:54,960 --> 00:02:59,670
‫على قذيفة ، حتى نوع فئة المخطط بناءً على هذا.

42
00:02:59,670 --> 00:03:02,100
‫الآن سأعطيها خاصية U.

43
00:03:02,730 --> 00:03:07,620
‫ولأنني أرغب في أن أكون قادرًا على تعديل هذا ، على الأقل في المخطط الافتراضي ، سأقوم بعمل

44
00:03:07,620 --> 00:03:09,060
‫هذا التعديل افتراضيًا.

45
00:03:09,060 --> 00:03:12,540
‫الآن فقط يمكننا إعطاء هذه الفئة.

46
00:03:13,530 --> 00:03:16,170
‫سأضعها في فئة تسمى القتال.

47
00:03:16,200 --> 00:03:18,240
‫الآن دعنا نمضي قدمًا ونجمع هذا.

48
00:03:18,270 --> 00:03:23,130
‫حسنًا ، لقد عدت إلى المحرر وسأنتقل إلى مجلد المخططات ومن هناك

49
00:03:23,130 --> 00:03:24,330
‫إلى مجلد Pons.

50
00:03:24,330 --> 00:03:29,580
‫وسأقوم فقط بفتح BP - tank وفتح محرر المخطط الكامل.

51
00:03:29,580 --> 00:03:32,910
‫الآن ، إذا بحثت في لوحة التفاصيل ، يمكنني البحث عن القتال.

52
00:03:32,910 --> 00:03:33,840
‫ها هو.

53
00:03:33,840 --> 00:03:36,540
‫وهنا متغير فئة المقذوف.

54
00:03:36,540 --> 00:03:40,410
‫هذه هي تلك الفئة الفرعية التي أطلقنا عليها فئة المقذوفات.

55
00:03:40,410 --> 00:03:44,250
‫لاحظ الآن أنه يمكننا تعيينه هنا ويمكننا تعيينه باستخدام قائمة منسدلة.

56
00:03:44,250 --> 00:03:47,910
‫وإذا نقرنا على القائمة المنسدلة ، فلدينا ثلاثة خيارات.

57
00:03:47,910 --> 00:03:53,340
‫يمكننا تعيينه على لا شيء ، وهو ما يتم تعيينه افتراضيًا ، مما يعني أنه مؤشر فارغ.

58
00:03:53,340 --> 00:03:57,960
‫أو يمكننا ضبطه على قذيفة أو قذيفة BP.

59
00:03:57,990 --> 00:04:04,740
‫هذا ما تسمح لنا الفئة الفرعية بالقيام به هو تعيين فئة المقذوف هذه على نوع معين بناءً على المقذوف ،

60
00:04:04,740 --> 00:04:08,880
‫نظرًا لأن هذا هو النوع الذي اخترناه عندما صنعنا المتغير.

61
00:04:08,880 --> 00:04:10,140
‫الآن مقذوف هنا.

62
00:04:10,140 --> 00:04:14,520
‫هذه هي فئة C ++ تسمى قذيفة في C ++.

63
00:04:14,520 --> 00:04:22,260
‫إنها قذيفة ، لكن قذيفة BP عبارة عن مخطط يعتمد على فئة المقذوفات C ++ ويمكننا اختيار

64
00:04:22,260 --> 00:04:22,920
‫هذا.

65
00:04:22,920 --> 00:04:27,870
‫والآن تم تعيين فئة المقذوف على نوع قذيفة BP.

66
00:04:27,870 --> 00:04:32,610
‫الآن ، هذا ليس مكونًا وليس كائنًا مقذوفًا من طراز BP.

67
00:04:32,610 --> 00:04:33,540
‫هذا ليس ما هو عليه.

68
00:04:33,540 --> 00:04:36,480
‫يخزن نوعًا ، وبشكل أكثر تحديدًا حرف U.

69
00:04:36,480 --> 00:04:37,260
‫نوع الفصل.

70
00:04:37,260 --> 00:04:45,390
‫وكما قلت ، فإن صفك يحتوي على وظائف مدمجة تسمح للانعكاس بالعمل بين C ++ والمخططات.

71
00:04:45,390 --> 00:04:48,690
‫يمكن أن تتدفق المعلومات بين C ++ والمخططات.

72
00:04:48,690 --> 00:04:55,710
‫الآن لدينا فئة مقذوفة ، فئة فرعية من فئة PT تم ضبطها على نوع مخطط قذيفة BP.

73
00:04:55,710 --> 00:04:59,790
‫فلماذا نواجه كل المشاكل لإنشاء فئة فرعية من المتغيرات؟

74
00:04:59,790 --> 00:05:03,750
‫حسنًا ، نحن بحاجة إلى مناقشة كيفية عمل وظيفة ممثل التوليد.

75
00:05:04,200 --> 00:05:08,400
‫ممثل التفرخ هو وظيفة تنتمي إلى الطبقة العالمية الجديدة.

76
00:05:08,400 --> 00:05:12,120
‫لذلك إذا سيطرنا على العالم ، فيمكننا استدعاء ممثل التوليد.

77
00:05:12,120 --> 00:05:19,620
‫و Spawn الفاعل هي وظيفة قالب أخرى وهي مصممة لإنشاء كائنات جديدة مماثلة لإنشاء كائن

78
00:05:19,620 --> 00:05:21,060
‫فرعي افتراضي.

79
00:05:21,060 --> 00:05:28,260
‫لكن إنشاء كائن فرعي افتراضي مصمم لإنشاء مكونات ويمكننا استخدامه فقط في المُنشئ لفئة

80
00:05:28,260 --> 00:05:36,360
‫معينة يمكن استدعاء ممثل تفرخها في وقت التشغيل أثناء تشغيل اللعبة ويمكنه إنشاء ممثلين.

81
00:05:36,360 --> 00:05:39,450
‫الآن هو قالب ، لذا فهو يتطلب نوعًا.

82
00:05:39,480 --> 00:05:45,780
‫إذا كنا نرغب في إنتاج قذيفة ، فسنمرر في فئة C ++ نوع قذيفة هنا.

83
00:05:45,810 --> 00:05:52,590
‫هذه هي فئة C ++ التي يتم إرجاعها بواسطة وظيفة ممثل النشر في C ++.

84
00:05:52,620 --> 00:05:57,060
‫تأخذ الأقواس الآن عددًا من المعلمات ، بما في ذلك فئة U.

85
00:05:57,060 --> 00:06:02,190
‫يوجد الآن العديد من الأحمال الزائدة لهذه الوظيفة التي تأخذ معلمات إدخال مختلفة.

86
00:06:02,190 --> 00:06:07,590
‫ربما يكون أبسطها هو الإصدار الذي يأخذ فئة U والموقع والدوران.

87
00:06:07,590 --> 00:06:08,010
‫يو.

88
00:06:08,010 --> 00:06:11,280
‫الطبقة هي ما يمثل النوع الذي يجب نشره.

89
00:06:11,310 --> 00:06:16,020
‫هذا هو النوع الفعلي للكائن الذي يتم إنتاجه.

90
00:06:16,050 --> 00:06:18,300
‫يمكن أن يكون هذا فصل دراسي مخطط.

91
00:06:18,330 --> 00:06:25,890
‫الموقع عبارة عن متجه F يحدد مكان تفرخ الكائن وسيحدد الدوران دورانه.

92
00:06:25,890 --> 00:06:28,710
‫لذلك يبدو مثال على بناء الجملة مثل هذا.

93
00:06:28,710 --> 00:06:35,580
‫سوف نسمي عامل التفرخ الذي يحدد نوع الفئة ثم نمرر معلومات فئة u مع

94
00:06:35,580 --> 00:06:38,820
‫متجه الموقع ودور الدوران.

95
00:06:38,820 --> 00:06:41,160
‫لنتحدث عنك في الفصل للحظة.

96
00:06:41,160 --> 00:06:44,970
‫الآن ، كما قلنا ، يمثل صفك نوع الفصل.

97
00:06:44,970 --> 00:06:51,480
‫عندما نسمي عامل التوليد ، فإننا نمرر في فئة U لتزويد وظيفة ممثل التفرخ بمعلومات حول

98
00:06:51,480 --> 00:06:53,550
‫الكائن الذي سيتم نشره.

99
00:06:53,910 --> 00:07:01,860
‫نعم ، لقد مررنا نوعًا في أقواس الزاوية ، ولكن هذا يخبر ببساطة ممثل Spawn بنوع C ++ الذي يجب إنشاؤه.

100
00:07:01,860 --> 00:07:04,890
‫بينما يحتوي الفصل على مزيد من المعلومات.

101
00:07:04,890 --> 00:07:11,070
‫لنفترض أننا أنشأنا مخططًا بناءً على قذيفة وفي المخطط قمنا بتعيين بعض الخصائص مثل

102
00:07:11,070 --> 00:07:14,580
‫اختيار الشبكة الثابتة لمكون الشبكة الثابتة.

103
00:07:14,580 --> 00:07:21,480
‫الآن إذا أردنا إنتاج فئة C ++ خام ، فلن يتم تعيين تلك الشبكة الثابتة على كائن مقذوف تم

104
00:07:21,480 --> 00:07:22,860
‫إنتاجه حديثًا.

105
00:07:22,860 --> 00:07:26,250
‫في الأساس ، كنا سننتج ممثلاً جديدًا غير مرئي.

106
00:07:26,430 --> 00:07:30,780
‫ومع ذلك ، يمكن لمتغير فئة جديد أن يمثل فئة مخطط.

107
00:07:30,930 --> 00:07:37,140
‫يمنحنا الفصل الدراسي الخاص بك القدرة على الحصول على متغير من جانب C ++ ، والذي يمثل مخططًا

108
00:07:37,140 --> 00:07:38,730
‫ونوع فئة وتفرخًا.

109
00:07:38,730 --> 00:07:45,900
‫يمكن للممثل أن يأخذ هذه الفئة كوسيطة إدخال حتى يتمكن من إنتاج كائن جديد بناءً على المخطط الذي

110
00:07:45,900 --> 00:07:48,060
‫تمثله تلك الفئة الجديدة.

111
00:07:48,060 --> 00:07:54,810
‫لذلك سيكون للقذيفة الجديدة مجموعة خصائص الشبكة الثابتة لأننا ننتج كائنًا جديدًا

112
00:07:54,810 --> 00:07:58,560
‫بناءً على المخطط وليس فئة C ++ الأولية.

113
00:07:58,560 --> 00:08:05,190
‫هذا هو السبب في أننا أنشأنا الفئة الفرعية الخاصة بنا لأنها يمكن أن تخزن فئة جديدة وتمكنا

114
00:08:05,190 --> 00:08:10,050
‫من جعلها مساوية لقذيفة BP من مخطط BP - tank الخاص بنا.

115
00:08:10,050 --> 00:08:13,020
‫حتى الآن أنت تعرف كيف تفرخ الممثلين.

116
00:08:13,170 --> 00:08:16,020
‫ممثل تفرخ ينتمي إلى الطبقة العالمية الجديدة.

117
00:08:16,020 --> 00:08:22,320
‫لذلك إذا اتصلت بـ get world وقمت ببساطة بالاتصال بممثل Spawn ، فأنت تعرف متطلبات

118
00:08:22,320 --> 00:08:29,370
‫الإدخال لهذه الوظيفة التي تقوم بتمريرها في نوع C ++ في أقواس الزاوية وتصنف موقعًا ودورانًا

119
00:08:29,370 --> 00:08:30,750
‫بين الأقواس.

120
00:08:30,750 --> 00:08:35,820
‫لذا بالنسبة للتحدي الذي تواجهه ، ستقوم بإنتاج القذيفة ، قم بذلك في وظيفة إطلاق النار.

121
00:08:35,820 --> 00:08:41,760
‫لذا اتصل بـ get world spawn act وقم بتمرير قذيفة بين قوسين.

122
00:08:41,760 --> 00:08:45,390
‫هذا يعني أنك ستحتاج إلى تضمين ملف الرأس للقذيفة.

123
00:08:45,390 --> 00:08:52,920
‫لذلك لا تنس ذلك واستخدم فئة المقذوفات المتغيرة الجديدة كمعامل إدخال فئة U في الأقواس.

124
00:08:52,920 --> 00:08:55,320
‫الآن نحن بحاجة إلى موقع ودوران.

125
00:08:55,320 --> 00:09:00,480
‫ستستخدم نقطة تولد المقذوف لكل من الموقع والدوران.

126
00:09:00,480 --> 00:09:02,850
‫من عنصر نقطة ولادة المقذوف.

127
00:09:02,850 --> 00:09:09,000
‫يمكنك استدعاء الحصول على موقع المكون والحصول على دوران المكون للوصول إلى هذه القيم.

128
00:09:09,000 --> 00:09:14,040
‫لذا أوقف الفيديو مؤقتًا واتصل بممثل النشر في وظيفة إطلاق النار الآن.

129
00:09:16,920 --> 00:09:17,310
‫تمام.

130
00:09:17,310 --> 00:09:22,880
‫لذلك دعنا ننتقل إلى Base Pond CP حيث تم تحديد وظيفة إطلاق النار.

131
00:09:22,890 --> 00:09:25,230
‫الآن قمنا برسم كرة التصحيح هنا.

132
00:09:25,230 --> 00:09:27,450
‫لن نحتاج ذلك حقًا بعد الآن.

133
00:09:27,450 --> 00:09:33,270
‫لذلك سأقوم بحذف استدعاء الوظيفة هذا وبدلاً من ذلك سأقوم بالاتصال بممثل Spawn هنا.

134
00:09:33,270 --> 00:09:36,750
‫الآن لدينا بالفعل موقع نقطة انتشار المقذوف.

135
00:09:37,050 --> 00:09:43,770
‫سأقوم بإعادة تسمية هذا المتغير المحلي إلى الموقع ببساطة وسأقوم بإنشاء دوار F جديد.

136
00:09:44,430 --> 00:09:45,810
‫تناوب يسمى.

137
00:09:45,900 --> 00:09:50,010
‫وهذا ما سأحصل عليه من نقطة تفرخ القذيفة أيضًا.

138
00:09:50,010 --> 00:09:56,670
‫لذلك ستكون نقطة تفرخ المقذوف مع دوران المكون.

139
00:09:56,670 --> 00:10:01,980
‫حتى الآن لدي الموقع والدوران الذي يجب أن تفرخ فيه القذيفة.

140
00:10:02,430 --> 00:10:07,050
‫لذا أحتاج بعد ذلك إلى الاتصال بممثل تفرخ حتى يمكنني الاتصال بـ get world.

141
00:10:07,050 --> 00:10:11,910
‫ومن العالم الذي أحصل عليه من هذه الوظيفة ، يمكنني أن أدعو ممثل التوليد.

142
00:10:12,240 --> 00:10:15,780
‫الآن هذا يحتوي على أقواس وأقواس زاوية ، أليس كذلك؟

143
00:10:15,780 --> 00:10:19,740
‫لذا ، بين قوسين الزاوية ، أحتاج إلى استخدام قذيفة.

144
00:10:21,240 --> 00:10:25,640
‫ونظرًا لأننا نستخدم مقذوفًا ، فنحن بحاجة إلى تضمين رأس ذلك.

145
00:10:25,650 --> 00:10:32,760
‫لذا هنا ، سأقوم بإزالة ورسم مساعدين في تصحيح الأخطاء واستبدالها بقذيفة.

146
00:10:34,740 --> 00:10:37,260
‫والآن لدينا هذا النوع مضمنًا.

147
00:10:37,260 --> 00:10:44,070
‫الآن نحن بحاجة إلى فئة U وبناءً على H لديها فئة مقذوفة ، يمكننا استخدامها كفئة U.

148
00:10:44,070 --> 00:10:47,050
‫لذلك سنمر في فئة المقذوفات.

149
00:10:47,070 --> 00:10:54,750
‫الآن ، أخيرًا ، يمكننا المرور في الموقع والدوران وهذا سوف يرضي وظيفة الفاعل.

150
00:10:54,750 --> 00:11:00,420
‫لذلك دعونا نمضي قدمًا ونجمع هذا وسنعد هنا في المحرر ويمكننا اختبار اللعب.

151
00:11:00,420 --> 00:11:04,080
‫لذلك سأقوم بالضغط والتحقق من ذلك.

152
00:11:04,080 --> 00:11:06,750
‫لقد أنتجنا قذيفة جديدة.

153
00:11:06,750 --> 00:11:13,680
‫نحن ننتج القذيفة عند طرف ماسورةنا وهي نوعًا ما تحوم هناك في الهواء ، والتي

154
00:11:13,680 --> 00:11:15,660
‫لا تبدو صحيحة حقًا.

155
00:11:15,660 --> 00:11:16,430
‫لكن لا مشكلة.

156
00:11:16,440 --> 00:11:17,700
‫هذه هي الخطوة الأولى.

157
00:11:17,700 --> 00:11:23,580
‫علينا أولاً إنتاج القذيفة ، وجعلها تعمل كقذيفة كخطوة تالية.

158
00:11:23,580 --> 00:11:27,120
‫باختصار ، نحن الآن ننتج مقذوفات.

159
00:11:27,150 --> 00:11:29,060
‫هذا معلم عظيم.

160
00:11:29,070 --> 00:11:32,250
‫ومع ذلك ، فهي ليست مقذوفات تمامًا بعد.

161
00:11:32,280 --> 00:11:36,060
‫هم فقط يحومون هناك ومن المفترض أن تطير المقذوفات في الهواء.

162
00:11:36,210 --> 00:11:41,490
‫لذا في الفيديو التالي ، سنتحدث عن كيفية جعل مقذوفاتنا تطير في الهواء بالفعل

163
00:11:41,490 --> 00:11:43,800
‫بحيث تتصرف مثل المقذوفات.

164
00:11:43,830 --> 00:11:44,700
‫سأراك قريبا.

