﻿1
00:00:04,080 --> 00:00:05,730
‫أهلا ومرحبا بكم مرة أخرى.

2
00:00:05,760 --> 00:00:10,380
‫نحن الآن جاهزون لتدوير البرج ونرغب في القيام بذلك باستخدام الماوس.

3
00:00:10,380 --> 00:00:14,790
‫وهذا موقع الإصابة من التتبع الذي قمنا به في الفيديو السابق.

4
00:00:14,880 --> 00:00:22,200
‫لذلك أثناء تحريك مؤشر الماوس ، يدور البرج ويواجه اتجاه مؤشر الماوس.

5
00:00:22,320 --> 00:00:28,110
‫وحتى عند النقر في منفذ العرض والبدء في اللعب ، لا يزال بإمكاني تحريك مؤشر الماوس

6
00:00:28,110 --> 00:00:31,080
‫حوله لتدوير البرج وتحديد اتجاهه.

7
00:00:31,110 --> 00:00:35,850
‫سيسمح لي هذا بالتصويب عندما تكون لدي القدرة على إطلاق المقذوفات.

8
00:00:35,880 --> 00:00:36,200
‫تمام.

9
00:00:36,240 --> 00:00:41,770
‫لتحقيق ذلك ، نحتاج إلى إيجاد الاتجاه الذي نريد أن يشير إليه برجنا.

10
00:00:41,790 --> 00:00:46,410
‫وبمجرد أن نجد هذا الاتجاه ، يمكننا ضبط دوران شبكة البرج.

11
00:00:46,500 --> 00:00:52,470
‫الآن ، من أجل الحصول على الاتجاه الذي نرغب في أن يشير البرج إليه ، نحتاج إلى إجراء القليل من الرياضيات

12
00:00:52,470 --> 00:00:53,500
‫المتجهية.

13
00:00:53,520 --> 00:00:59,570
‫ما نبحث عنه هو متجه من برج الخزان إلى موقع إصابة التتبع.

14
00:00:59,580 --> 00:01:05,940
‫الآن يمكننا بسهولة الحصول على موقع الخزان الخاص بنا أو أي من مكوناته ، مثل موقع

15
00:01:05,940 --> 00:01:06,960
‫برج الخزان.

16
00:01:06,990 --> 00:01:09,600
‫سوف نسمي هذا الموقع ، البرج ، الموقع.

17
00:01:09,600 --> 00:01:13,440
‫ونعرف أيضًا كيف يمكننا الحصول على موقع رأس التتبع.

18
00:01:13,470 --> 00:01:15,800
‫سوف نسمي هذا موقع ضرب التتبع.

19
00:01:15,810 --> 00:01:20,760
‫ما يهمنا هو المتجه من موقع البرج لتتبع موقع الضربة.

20
00:01:20,760 --> 00:01:23,100
‫سنسمي هذا المتجه للاستهداف.

21
00:01:23,130 --> 00:01:27,030
‫الآن الرياضيات المتجه للوصول إلى الهدف هي في الواقع بسيطة للغاية.

22
00:01:27,060 --> 00:01:33,120
‫للحصول على متجه من نقطة البداية إلى نقطة النهاية تكون دائمًا نقطة النهاية مطروحًا منها نقطة البداية.

23
00:01:33,420 --> 00:01:39,270
‫لذلك إذا أخذنا التتبع ، وضربنا الموقع وطرحنا موقع برج المتجه ، فإن المتجه

24
00:01:39,270 --> 00:01:41,620
‫الناتج عن هذا هو الهدف.

25
00:01:41,640 --> 00:01:47,160
‫الآن ، بمجرد أن نحصل على متجهي الاتجاه المستهدفين ، نريد تحويل ذلك إلى دوران حتى

26
00:01:47,160 --> 00:01:49,530
‫نتمكن من ضبط دوران برج الخزان.

27
00:01:49,530 --> 00:01:53,750
‫ونوع المتجه له وظيفة مضمنة تسمى الدوران.

28
00:01:53,760 --> 00:02:01,230
‫لذا ، إذا أخذنا متجهًا مستهدفًا وقمنا باستدعاء الدوران عليه ، فسيؤدي ذلك إلى إرجاع محور دوار F يتوافق مع

29
00:02:01,230 --> 00:02:02,260
‫هذا الاتجاه.

30
00:02:02,280 --> 00:02:04,430
‫الآن نحن بحاجة إلى وضع شيء ما في الاعتبار.

31
00:02:04,440 --> 00:02:11,160
‫غالبًا ما تكون نتيجة إصابة التتبع على الأرض ولن يكون المتجه من برج الخزان إلى

32
00:02:11,160 --> 00:02:14,620
‫نتيجة إصابة التتبع موازيًا للأرض.

33
00:02:14,640 --> 00:02:20,850
‫هذا يعني أنه إذا قمنا بتعيين دوران برج الخزان على الدوار الذي نحصل عليه من متجه الاتجاه

34
00:02:20,850 --> 00:02:26,790
‫هذا ، فقد نحصل على شيء مثل هذا حيث يكون البرج مائلًا لأسفل باتجاه الأرض ، لكننا لا نريد

35
00:02:26,790 --> 00:02:29,310
‫أن يدور برج الخزان لأسفل.

36
00:02:29,310 --> 00:02:31,350
‫نريده أن يشير إلى الأمام.

37
00:02:31,350 --> 00:02:33,780
‫إذن هذه هي النتيجة التي نريدها.

38
00:02:33,810 --> 00:02:39,180
‫بمعنى آخر ، نريد فقط تغيير عنصر نعم في دوران برج الخزان.

39
00:02:39,180 --> 00:02:44,550
‫وبهذه الطريقة ، فإنه يشير إلى الاتجاه الصحيح ولكنه يظل موازيًا للأرض.

40
00:02:44,550 --> 00:02:51,600
‫لقد غيّرنا الانعراج فقط ، لذا دعنا نعود إلى رمز VS وننشئ وظيفة لتدوير برج الخزان.

41
00:02:51,630 --> 00:02:57,210
‫سنقوم الآن بتدوير البرج على الخزان ، لكننا نرغب أيضًا في تدوير البرج

42
00:02:57,210 --> 00:03:04,290
‫على عدونا البرج ، وسيتم إنشاء البرج قريبًا من قاعدة pon ، مما يعني أننا إذا أنشأنا برجًا

43
00:03:04,290 --> 00:03:08,820
‫دوارًا وظيفة يمكننا وضعها هنا في فئة القاعدة بونغ.

44
00:03:08,820 --> 00:03:12,930
‫وبهذه الطريقة سيرث كل من الخزان والبرج هذه الوظيفة.

45
00:03:12,930 --> 00:03:18,480
‫نظرًا لأننا نخطط لاستخدامه في كل من البرج والخزان ، يمكننا حماية هذه الوظيفة.

46
00:03:18,720 --> 00:03:24,630
‫لذلك سأضيف قسمًا محميًا وأي وظائف ومتغيرات نضعها في القسم المحمي ستكون

47
00:03:24,630 --> 00:03:29,220
‫متاحة في هذه الفئات الفرعية ، ولكن ليس في أي فئات أخرى.

48
00:03:29,220 --> 00:03:32,580
‫لذلك فهو مقيد تقريبًا مثل المتغيرات الخاصة.

49
00:03:32,580 --> 00:03:34,860
‫الآن يمكن لهذه الوظيفة أن ترجع الفراغ.

50
00:03:34,860 --> 00:03:37,710
‫سأسمي هذا البرج الدوار.

51
00:03:38,850 --> 00:03:44,690
‫ومن أجل تدوير البرج ، سأحتاج إلى نوع من الوجهة للنظر إليها.

52
00:03:44,700 --> 00:03:49,620
‫يمكن أن يكون هذا متجهًا f ويمكننا تسمية هذه النظرة على الهدف.

53
00:03:49,620 --> 00:03:56,490
‫لذا فإن الفكرة هي أنه إذا كانت لدينا وظيفة يمكننا تمريرها في مكان ما في العالم ، فيجب أن

54
00:03:56,490 --> 00:04:00,360
‫تؤدي الوظيفة إلى تدوير البرج نحو ذلك الموقع.

55
00:04:00,360 --> 00:04:04,680
‫لذلك دعونا نمضي قدمًا ونقدم تعريفًا لوظيفة البرج الدوار.

56
00:04:04,680 --> 00:04:11,280
‫هنا في قاعدة بيدق CP تحت المُنشئ ، سأقوم بتنفيذ برج التدوير.

57
00:04:11,280 --> 00:04:16,680
‫وبالطبع أحتاج إلى اسم فئة البيدق الأساسي مع عامل تحليل النطاق هنا.

58
00:04:16,680 --> 00:04:21,180
‫والآن بعد أن قمت بتدوير البرج ، دعنا نفكر في كيفية تنفيذ ذلك.

59
00:04:21,180 --> 00:04:28,320
‫أول شيء نحتاجه هو استهداف المتجه من مكون البرج إلى نتيجة ضرب التتبع تحت

60
00:04:28,320 --> 00:04:30,120
‫مؤشر الماوس.

61
00:04:30,120 --> 00:04:38,970
‫لذلك يمكن أن يكون هذا متجهًا محليًا لـ F يسمى الهدف وسنقوم بضبطه مساويًا لنتيجة بعض الرياضيات المتجهية.

62
00:04:38,970 --> 00:04:43,350
‫تذكر ، ستكون الوجهة مطروحًا منها نقطة البداية.

63
00:04:43,350 --> 00:04:50,910
‫والوجهة هي إلقاء نظرة على الهدف وستكون نقطة البداية هي موقع برج الخزان ،

64
00:04:50,910 --> 00:04:54,030
‫بمعنى آخر ، موقع شبكة البرج.

65
00:04:54,030 --> 00:04:59,880
‫لذلك يمكننا أن نقول شبكة برج ويمكننا الحصول على موقع شبكة البرج.

66
00:04:59,880 --> 00:05:07,290
‫الآن طريقة الحصول على الموقع العالمي للمكون هي الحصول على موقع المكون باستخدام هذه الوظيفة.

67
00:05:07,290 --> 00:05:09,630
‫إنه ينتمي إلى فئة مكون مشهد الاستخدام.

68
00:05:09,630 --> 00:05:11,460
‫لذلك كل مكونات المشهد لها.

69
00:05:11,460 --> 00:05:15,690
‫لذلك من شبكة البرج سنسمي الحصول على موقع المكون.

70
00:05:16,340 --> 00:05:24,290
‫لذا انظر إلى الهدف مطروحًا منه موقع شبكة البرج الذي يعطينا المتجه من شبكة البرج إلى هدف المراقبة.

71
00:05:24,320 --> 00:05:30,590
‫الآن ، كما ذكرت ، يمكننا الحصول على محور دوار EF من الهدف باستخدام وظيفة دوران متجهات F.

72
00:05:30,590 --> 00:05:37,100
‫لذلك سنقوم بعمل دوار F ويمكننا أن نطلق على هذا نظرة إلى الدوران وسنقوم بتعيين هذا على

73
00:05:37,100 --> 00:05:40,100
‫مساوٍ لاستدارة النقطة المستهدفة.

74
00:05:40,280 --> 00:05:41,570
‫هذه دعوة وظيفية.

75
00:05:41,570 --> 00:05:46,700
‫إذن لدينا الآن الدوار المقابل لهذا لاستهداف متجه الاتجاه.

76
00:05:46,700 --> 00:05:49,550
‫لكن الشيء هو أننا نهتم فقط بـ YA.

77
00:05:49,550 --> 00:05:51,680
‫لا نريد تغيير الملعب أو الدور.

78
00:05:51,680 --> 00:05:57,290
‫نريد فقط تدوير البرج حول المحور z وإبقائه موازٍ للأرض.

79
00:05:57,290 --> 00:05:59,420
‫الآن يمكننا القيام بذلك بأي عدد من الطرق.

80
00:05:59,420 --> 00:06:05,870
‫أولاً ، يمكننا أن نلقي نظرة على التدوير ، ودرجة الصوت ، وصفر ذلك.

81
00:06:05,870 --> 00:06:08,180
‫بمعنى آخر ، اجعله يساوي صفرًا.

82
00:06:08,210 --> 00:06:14,240
‫يمكننا أيضًا إلقاء نظرة على دور نقطة الدوران وصفر ذلك أيضًا.

83
00:06:14,240 --> 00:06:21,020
‫الآن بعد أن قمنا بضبط الملعب واللف على الصفر ، لدينا الدوران الذي نريده ، وهو المكون فقط.

84
00:06:21,020 --> 00:06:22,460
‫هذه هي طريقة واحدة للقيام بذلك.

85
00:06:22,460 --> 00:06:26,450
‫قد يكون آخر هو استخدام أحد الأحمال الزائدة لمنشئ الدوار F.

86
00:06:26,450 --> 00:06:34,820
‫إذا قلنا f rotator بأقواس وقمنا بتمرير بعض القيم مثل نقطة الصفر F لأول مرة ، فإن النافذة المنبثقة

87
00:06:34,820 --> 00:06:38,300
‫تخبرني أن هذا الإدخال الأول هو الملعب.

88
00:06:38,300 --> 00:06:43,880
‫ثم بالنسبة لـ ya يمكننا استخدامها لاستهداف التناوب.

89
00:06:44,330 --> 00:06:44,990
‫نعم.

90
00:06:44,990 --> 00:06:47,960
‫ثم بالنسبة للدور ، يمكننا استخدام صفر نقطة F.

91
00:06:47,960 --> 00:06:55,820
‫الآن ما يفعله هذا هو إنشاء دوار F جديد مع صفر للميل ، وصفر للدور ومكون الدوار الذي

92
00:06:55,820 --> 00:06:59,420
‫يتم إرجاعه بواسطة دوران هدفين.

93
00:06:59,420 --> 00:07:05,300
‫لذا فإن القيمة التي يتم إرجاعها من خلال هذا ستعطينا نفس النتيجة كما فعلنا هنا مع هذه الأسطر الثلاثة.

94
00:07:05,300 --> 00:07:11,990
‫نظرًا لأن هذا أكثر إحكاما وأناقة ، أعتقد أنني أفضل استخدام هذا حتى نتمكن من

95
00:07:11,990 --> 00:07:19,370
‫تهيئة نظرة متجه الدوران مع إرجاع الدوار F عن طريق استدعاء مُنشئ الدوار F مثل هذا.

96
00:07:19,370 --> 00:07:21,380
‫لذا سأقوم بإزالة هذا الخط هنا.

97
00:07:21,380 --> 00:07:23,360
‫والآن ألقينا نظرة على الدوران.

98
00:07:23,360 --> 00:07:29,000
‫الآن آخر شيء يجب القيام به في هذه الوظيفة هو ضبط دوران البرج المهروس.

99
00:07:29,000 --> 00:07:36,440
‫الآن يمكننا ضبط الدوران لمكون معين باستخدام هذه الوظيفة تعيين دوران العالم مرة أخرى ، إنه ينتمي إلى

100
00:07:36,440 --> 00:07:38,270
‫استخدام مكون المشهد.

101
00:07:38,270 --> 00:07:44,300
‫والسبب في استخدامنا لتناوب الكلمات المحددة بدلاً من إضافة نوع من تعويض الدوران المحلي

102
00:07:44,300 --> 00:07:50,420
‫هو أن لدينا تناوبًا في الفضاء العالمي الهدف الثاني هو متجه اتجاه الفضاء العالمي.

103
00:07:50,420 --> 00:07:56,000
‫نحن نأخذ موقع شبكة البرج في الفضاء العالمي ونطرح نظرة على الموقع المستهدف في الفضاء

104
00:07:56,000 --> 00:07:56,750
‫العالمي.

105
00:07:56,750 --> 00:07:58,850
‫إذن هذا اتجاه فضاء عالمي.

106
00:07:58,850 --> 00:08:02,450
‫لذلك فإن النظرة إلى الدوران هي دوران عالمي للفضاء.

107
00:08:02,450 --> 00:08:06,140
‫لذلك سنستخدم دوران العالم المحدد على شبكة البرج.

108
00:08:06,290 --> 00:08:13,280
‫لذلك سنقول شبكة البرج ، نضبط دوران العالم وسنمرر في نظرة على الدوران.

109
00:08:13,280 --> 00:08:19,550
‫إذن لدينا الآن وظيفة يمكنها أخذ أي هدف في العالم وتحويل شبكة البرج للنظر إليه

110
00:08:19,550 --> 00:08:22,550
‫، لكنها لن تقوم بتدوير الشبكة لأسفل.

111
00:08:22,550 --> 00:08:28,100
‫سوف يغير انحرافه فقط ، لذلك سوف يدور بطريقة يجب أن يدور بها برج الخزان.

112
00:08:28,100 --> 00:08:31,100
‫إذن لدينا الآن وظيفة لتدوير البرج.

113
00:08:31,130 --> 00:08:36,980
‫سوف أتحداك لاستدعاء هذه الوظيفة لضبط دوران البرج ، واستدعاء وظيفة تدوير

114
00:08:36,980 --> 00:08:38,870
‫البرج في فئة الخزان.

115
00:08:38,870 --> 00:08:40,730
‫هذه وظيفة محمية.

116
00:08:40,730 --> 00:08:43,070
‫لذلك يمكن الوصول إلى فئة الخزان.

117
00:08:43,070 --> 00:08:49,220
‫يأخذ برج التدوير الآن متجه F ، والنظر إلى الهدف ، ستستخدم نقطة التأثير هذه في نتيجة

118
00:08:49,220 --> 00:08:51,410
‫ضرب F من تتبع الخط لدينا.

119
00:08:51,410 --> 00:08:57,170
‫لذلك سأترك الأمر لكم للعثور على المكان الصحيح في الكود لاستدعاء هذه الوظيفة.

120
00:08:57,410 --> 00:09:00,920
‫لذا قم بإيقاف الفيديو مؤقتًا وضع وظيفة تدوير البرج.

121
00:09:00,920 --> 00:09:02,870
‫استدعاء في فئة الدبابات.

122
00:09:06,000 --> 00:09:06,150
‫تمام.

123
00:09:06,300 --> 00:09:09,960
‫لذلك لدينا وظيفة البرج الدوار الخاصة بنا ونحن على استعداد لاستدعائها.

124
00:09:10,140 --> 00:09:18,200
‫سأذهب إلى الخزان وإليك وظيفة التجزئة الخاصة بي داخل المرجع للتحقق من وحدة تحكم اللاعب.

125
00:09:18,210 --> 00:09:24,870
‫لدي نتيجة النتيجة الخاصة بي وبعد استدعاء نتيجة الحصول على نتيجة أسفل المؤشر ، ستحتوي نتيجة النتيجة على

126
00:09:24,870 --> 00:09:25,860
‫بيانات صالحة.

127
00:09:25,860 --> 00:09:30,480
‫في الواقع ، نحن نستخدم نقطة تأثير النتيجة ونرسم كرة التصحيح.

128
00:09:30,510 --> 00:09:35,370
‫الآن بما أنني لست بحاجة إلى رسم مجال تصحيح الأخطاء بعد الآن ، فسأقوم بحذف ذلك.

129
00:09:35,370 --> 00:09:39,900
‫وبدلاً من ذلك سأقوم باستدعاء وظيفة الحماية الخاصة بالبرج الدوار.

130
00:09:39,900 --> 00:09:45,750
‫ولإلقاء نظرة على الهدف ، سأقوم بتمرير نقطة تأثير نقطة النتيجة.

131
00:09:47,140 --> 00:09:53,320
‫لذا سنقوم الآن بتدوير كل إطار للبرج باتجاه نقطة التأثير تلك من نتيجة الضربة.

132
00:09:53,350 --> 00:09:59,050
‫الآن قبل أن أقوم بتجميع هذا ، لم أعد أستخدم مساعدي تصحيح الأخطاء في الرسم ، لذلك سأقوم بإزالة

133
00:09:59,050 --> 00:10:00,130
‫ملف الرأس هذا.

134
00:10:00,340 --> 00:10:00,820
‫تمام.

135
00:10:00,850 --> 00:10:02,590
‫الآن أنا جاهز للتجميع.

136
00:10:02,970 --> 00:10:03,360
‫تمام.

137
00:10:03,370 --> 00:10:05,050
‫لقد عدت هنا في المحرر.

138
00:10:05,080 --> 00:10:09,440
‫دعنا نمضي قدمًا ونضرب التشغيل ونتحقق من ذلك.

139
00:10:09,460 --> 00:10:11,460
‫هذا مذهل.

140
00:10:11,470 --> 00:10:12,910
‫لا يزال بإمكاني التدحرج.

141
00:10:12,910 --> 00:10:18,910
‫يمكنني تحريك الفأرة والبرج يدور أينما حركت مؤشر الفأرة.

142
00:10:18,910 --> 00:10:20,350
‫لذلك هذا رائع.

143
00:10:20,600 --> 00:10:25,750
‫حسنًا ، قبل أن نختتم هذا الأمر ، أود أن أتطرق إلى مشكلتين فقط.

144
00:10:25,750 --> 00:10:28,900
‫أريد أن يكون هذا لطيفًا ومصقولًا ومظهرًا رائعًا.

145
00:10:28,930 --> 00:10:35,680
‫الآن ، تحدث المشكلة الأولى عندما أقوم بتحريك مؤشر الماوس بالقرب من مركز الخزان ثم

146
00:10:35,680 --> 00:10:36,890
‫المرور عبره.

147
00:10:36,910 --> 00:10:42,670
‫سترى أنه في مرحلة ما يستقر هذا النوع من الدوران بسرعة كبيرة.

148
00:10:42,670 --> 00:10:48,250
‫وإذا قمنا بتحريك الماوس بطريقة عشوائية نوعًا ما ، حسنًا ، هذا لا يبدو رائعًا جدًا.

149
00:10:48,250 --> 00:10:49,480
‫إنه ينفجر.

150
00:10:49,480 --> 00:10:50,890
‫ليس لدينا حركة سلسة.

151
00:10:50,890 --> 00:10:52,270
‫إذن فهذه قضية واحدة.

152
00:10:52,300 --> 00:10:59,890
‫الآن ، المشكلة الأخرى هي إذا نقرت وأتدحرج وصعدت إلى الحافة ، سأرى أن برجي يستقر في الاتجاه

153
00:10:59,890 --> 00:11:03,750
‫الآخر عندما أحرك مؤشر الماوس لأعلى.

154
00:11:03,760 --> 00:11:05,730
‫إذن ما الذي يحدث هناك؟

155
00:11:05,740 --> 00:11:06,910
‫حسنًا ، دعنا نكتشف ذلك.

156
00:11:06,910 --> 00:11:10,240
‫سنعود إلى VS Code وأود استعادة مجال تصحيح الأخطاء الخاص بي.

157
00:11:10,240 --> 00:11:16,240
‫لذا بالعودة إلى تانك ، سأذهب إلى وظيفة التجزئة مباشرة قبل تدوير البرج ومرة

158
00:11:16,240 --> 00:11:19,240
‫أخرى سأسمي رسم مجال تصحيح الأخطاء.

159
00:11:19,450 --> 00:11:26,380
‫الآن بالنسبة للعالم الذي أقوم بتمريره ، أحصل على عالم للمركز الذي أمرره في نقطة تأثير نقطة نتيجة

160
00:11:26,380 --> 00:11:35,350
‫الضربة لنصف القطر الذي سأستخدمه 25 نقطة F يمكن أن يكون 12 ، يمكن أن يكون اللون F اللون الأحمر الخطوط الثابتة يمكن أن تكون خاطئة

161
00:11:35,350 --> 00:11:38,440
‫ويمكن أن يكون مدى الحياة سلبيًا.

162
00:11:38,440 --> 00:11:40,480
‫لذلك نفس الشيء الذي فعلناه من قبل.

163
00:11:40,690 --> 00:11:42,280
‫لذا سأقوم بحفظ هذا الإشعار.

164
00:11:42,280 --> 00:11:48,700
‫أنا لا أقوم بإضافة ملف الرأس احتياطيًا هناك وذلك لأن مساعدي تصحيح الأخطاء يتم تضمينها افتراضيًا ، لذلك نحن لسنا

165
00:11:48,700 --> 00:11:50,830
‫في حاجة إليها من الناحية الفنية.

166
00:11:50,830 --> 00:11:56,740
‫سأقوم فقط بحفظ القفز مرة أخرى في المحرر ، والقيام ببدء تشغيل الترميز المباشر والضغط على التشغيل.

167
00:11:56,740 --> 00:11:58,600
‫حتى الآن لدي مجال التصحيح الخاص بي.

168
00:11:58,600 --> 00:12:05,320
‫لذلك دعنا نذهب إلى حافة العالم وسأحرك مؤشر الماوس إلى حيث

169
00:12:05,320 --> 00:12:07,240
‫يقع في الهاوية.

170
00:12:07,240 --> 00:12:10,330
‫وهذا هو المكان الذي لدينا فيه المشكلة.

171
00:12:10,330 --> 00:12:15,940
‫كما ترى ، ليس لدينا نتيجة نتيجة أسفل المؤشر عندما يتحرك المؤشر لأعلى هناك لأنه لا

172
00:12:15,940 --> 00:12:18,730
‫يوجد شيء لدينا للحصول على نتيجة نتيجة.

173
00:12:18,730 --> 00:12:22,120
‫لذلك ، لم يتم تحديد نقطة تأثيرنا.

174
00:12:22,120 --> 00:12:25,570
‫إذن ما نحتاجه هو شيء ليصطدم به هذا الخط.

175
00:12:25,600 --> 00:12:28,810
‫الآن ، لدى Unreal Engine الكثير من الأدوات التي يمكننا استخدامها.

176
00:12:28,810 --> 00:12:35,170
‫ما سأفعله هو النقر فوق القائمة المنسدلة هنا وفتح لوحة الممثل المكاني وتحديد هذا الرمز الذي

177
00:12:35,170 --> 00:12:38,380
‫يشير إلى مجلدات والحصول على وحدة تخزين حظر.

178
00:12:38,380 --> 00:12:39,820
‫هنا حجم الحظر.

179
00:12:39,820 --> 00:12:41,710
‫سأقوم بسحب واحدة إلى الداخل.

180
00:12:41,740 --> 00:12:44,020
‫الآن لدي هذا الحجم المنع.

181
00:12:44,110 --> 00:12:48,190
‫الآن بشكل افتراضي ، من المفترض أن تكون وحدات التخزين غير مرئية.

182
00:12:48,190 --> 00:12:54,130
‫إذا ذهبت إلى لوحة التفاصيل لهذا وقمت بالتمرير لأسفل إلى التصادم ، أرى أن إعدادات التصادم

183
00:12:54,130 --> 00:13:00,940
‫المسبقة عبارة عن جدار غير مرئي ، والذي يبدو أنه يشير إلى أنه يجب أن يحجب كل شيء تقريبًا.

184
00:13:00,940 --> 00:13:06,610
‫الشيء الوحيد الذي لا يتم حظره هو قناة الرؤية ويحدث تتبع خطنا

185
00:13:06,610 --> 00:13:08,680
‫مقابل قناة الرؤية.

186
00:13:08,680 --> 00:13:13,630
‫أي شيء في عالمنا يحجب قناة الرؤية سيتأثر بتتبع خطنا.

187
00:13:13,630 --> 00:13:16,540
‫لكن هذا الحجم بالذات لا.

188
00:13:16,540 --> 00:13:17,860
‫من المفترض أن تكون غير مرئية.

189
00:13:17,860 --> 00:13:22,690
‫حسنًا ، يمكننا الانتقال إلى الإعدادات المسبقة للتصادم ، وفتح القائمة المنسدلة وتحديد Custom.

190
00:13:22,720 --> 00:13:28,300
‫سيسمح لنا ذلك بتغيير ذلك حتى أتمكن من ضبط استجابة التصادم على قناة الرؤية.

191
00:13:28,300 --> 00:13:29,170
‫إنها كتلة.

192
00:13:29,170 --> 00:13:34,960
‫إذن لدي الآن حجم غير مرئي ، لكنه مضبوط على حجب قناة الرؤية ، مما يعني أن آثار

193
00:13:34,960 --> 00:13:40,180
‫الخطوط التي تتبع قناة الرؤية مثل قناة الرؤية لدينا ستضربها.

194
00:13:40,180 --> 00:13:45,580
‫لذا ما يمكنني فعله هو أنني أستطيع أخذ حجم الحظر هذا وتوسيعه.

195
00:13:45,580 --> 00:13:47,800
‫سأضعه خلف الحائط.

196
00:13:47,800 --> 00:13:53,440
‫في الواقع ، يمكنني وضعه هنا عند حدود الجدار ، وسأقوم بإنزاله قليلاً بحيث

197
00:13:53,440 --> 00:13:55,900
‫يتداخل نوعًا ما مع الحائط.

198
00:13:55,900 --> 00:14:01,930
‫وبهذه الطريقة يكون لدينا هذا الحاجز غير المرئي هنا ، وسأمضي قدمًا وأوسع نطاقه

199
00:14:01,930 --> 00:14:03,550
‫في اتجاه Y أيضًا.

200
00:14:03,550 --> 00:14:09,880
‫لذا سأحصل على هذا الحجم الجميل والكبير وأضعه في المنتصف هنا وأعطيه القليل من الحشو.

201
00:14:09,880 --> 00:14:14,050
‫وسأقوم أيضًا بتوسيع نطاقه في اتجاه Z.

202
00:14:14,050 --> 00:14:18,460
‫لذا فهو الآن رائع وكبير ويجب أن يصل خط التتبع الخاص بنا إليه.

203
00:14:18,460 --> 00:14:20,080
‫لذلك دعونا نختبر هذه النظرية.

204
00:14:20,110 --> 00:14:23,170
‫دعنا نضغط في منفذ العرض ونصعد إلى الحائط.

205
00:14:23,170 --> 00:14:30,250
‫ومن المؤكد أنني أضرب حجم الحظر هذا من خلال تتبع الخط الخاص بي وليس لدي هذه المشكلة حيث يستقر

206
00:14:30,250 --> 00:14:34,240
‫برجي لإلقاء نظرة على بعض المواقع غير المحددة.

207
00:14:34,240 --> 00:14:40,810
‫من المحتمل أنه يتطلع إلى أصل العالم لأن متجه نقطة التأثير هذا هو كل الأصفار.

208
00:14:40,810 --> 00:14:43,660
‫الآن إذا صعدت إلى هذا الجدار ، لدي نفس المشكلة.

209
00:14:43,660 --> 00:14:46,270
‫لذلك نحن بحاجة إلى هذه الأحجام المقيدة.

210
00:14:46,600 --> 00:14:48,950
‫حول محيط مستوانا.

211
00:14:48,970 --> 00:14:50,590
‫الآن ، يمكن أن يكون ذلك سهلاً جدًا.

212
00:14:50,590 --> 00:14:54,820
‫كل ما علي فعله هو تكرار حجم الحظر هذا.

213
00:14:54,820 --> 00:14:59,290
‫الآن يمكنني التغيير من عرض المنظور إلى العرض الهجائي العلوي.

214
00:14:59,290 --> 00:15:06,070
‫لذلك سأختار الجزء العلوي وأقوم بالتمرير للخارج باستخدام عجلة الفأرة الخاصة بي وأمسك ببساطة ونسخ

215
00:15:06,070 --> 00:15:11,620
‫هذا الجدار وأضع واحدًا هنا ويمكنني الضغط على E للانتقال إلى وضع التدوير.

216
00:15:11,620 --> 00:15:14,740
‫لذلك سأحتفظ بالارتفاع والدوران بمقدار 90 درجة.

217
00:15:14,740 --> 00:15:21,010
‫سيعطيني ذلك نسخة ثم سأضغط مرتين وأبدأ وضع الترجمة الخاص بي وسأحركه

218
00:15:21,010 --> 00:15:26,920
‫هنا إلى هذا الجانب وأضغط على Alt واسحب نسخة إلى هذا الجانب.

219
00:15:26,920 --> 00:15:28,720
‫إذن لدينا الآن أربعة جدران.

220
00:15:28,720 --> 00:15:34,990
‫الآن يمكنني الانتقال من العرض العلوي إلى المنظور والضغط على تشغيل ، والآن يمكنني الصعود

221
00:15:34,990 --> 00:15:40,240
‫إلى أي من هذه الجدران ولا يهم الجدار الذي أغطيه ، لذلك يبدو رائعًا.

222
00:15:40,240 --> 00:15:42,340
‫لذلك هذا يعتني بإحدى مشاكلنا.

223
00:15:42,340 --> 00:15:43,720
‫لكن ماذا عن هذا الآخر؟

224
00:15:43,720 --> 00:15:49,360
‫إذا حركنا الماوس بالقرب من خزاننا ، فلا يزال لدينا هذا السلوك المتقطع.

225
00:15:49,360 --> 00:15:51,880
‫لذلك أود أن أعتني بذلك أيضًا.

226
00:15:51,880 --> 00:15:56,770
‫الآن ، الطريقة التي يمكنني بها الاهتمام بهذا هي من خلال استيفاء هذا الدوران.

227
00:15:56,770 --> 00:16:02,650
‫لذلك بدلاً من تعيين قيمة الدوران هذه مباشرةً ، يمكننا استخدام وظيفة الاستيفاء

228
00:16:02,650 --> 00:16:08,740
‫التي ستحرك بشكل أساسي هذا الدوران نحو الهدف الذي نقدمه بطريقة سلسة.

229
00:16:08,740 --> 00:16:10,270
‫لذلك دعونا نرى كيف يعمل ذلك.

230
00:16:10,270 --> 00:16:15,970
‫الآن ، أود أن يكون هذا الاستيفاء في وظيفة برج التدوير الخاصة بنا حتى نتمكن من العودة

231
00:16:15,970 --> 00:16:22,750
‫إلى قاعدة البيدق لأسفل لتدوير البرج ، وبدلاً من ضبط دوران العالم للبرج للنظر إلى الدوران ،

232
00:16:22,750 --> 00:16:28,240
‫يمكننا تعيينه مساويًا لـ القيمة المرجعة بواسطة دالة الاستيفاء.

233
00:16:28,240 --> 00:16:34,720
‫لذا سأقوم بحذف وإلقاء نظرة على التدوير وبدلاً من ذلك سنقوم باستدعاء دالة

234
00:16:34,720 --> 00:16:38,590
‫في مكتبة F الرياضيات تسمى R inter two.

235
00:16:39,100 --> 00:16:44,530
‫الآن لدينا في اثنين مصممة للتعامل مع الاستيفاء للدوارات.

236
00:16:44,530 --> 00:16:49,720
‫الآن معلمة الإدخال الأولى هي مرجع دوار ثابت F يسمى تيار.

237
00:16:49,720 --> 00:16:53,650
‫هذه هي القيمة الحالية للشيء الذي نحاول تغييره.

238
00:16:53,650 --> 00:16:59,560
‫الشيء الذي نحاول تغييره هو دوران الأبراج ويمكننا الحصول على ذلك من شبكة برجنا.

239
00:16:59,560 --> 00:17:05,920
‫لذلك سنقول شبكة البرج والوظيفة التي نريد استخدامها هي الحصول على دوران المكون.

240
00:17:05,920 --> 00:17:10,420
‫لذلك فهو يشبه إلى حد كبير الحصول على موقع المكون فقط أنه يحصل على الدوران.

241
00:17:10,420 --> 00:17:14,200
‫الآن الإدخال التالي هو دوار F يسمى الهدف.

242
00:17:14,200 --> 00:17:15,310
‫هذه هي القيمة.

243
00:17:15,310 --> 00:17:21,430
‫نريد هذا الدوران الشبكي للبرج ليترجم إلى نهج سلس.

244
00:17:21,430 --> 00:17:23,890
‫ستكون هذه نظرتنا إلى الدوران.

245
00:17:23,890 --> 00:17:26,620
‫لذلك سأقول انظر إلى الدوران.

246
00:17:26,620 --> 00:17:28,630
‫الإدخال التالي هو Delta time.

247
00:17:28,630 --> 00:17:30,640
‫لذلك نحن نعرف أهمية وقت دلتا.

248
00:17:30,640 --> 00:17:37,030
‫إذا كنا ننقل الأشياء أو نقوم بتدوير الأشياء ، فنحن نريد أن تكون هذه الحركة مستقلة عن معدل الإطارات.

249
00:17:37,030 --> 00:17:39,700
‫لذلك ، يمكننا الحصول على وقت دلتا.

250
00:17:39,700 --> 00:17:46,210
‫يمكنني ببساطة تضمين إحصائيات اللعب ، وإذا كانت لديك ذاكرة جيدة ، فستتذكر أن التضمين

251
00:17:46,210 --> 00:17:49,150
‫هو احصائيات لعبة kismet slash.

252
00:17:49,150 --> 00:17:57,700
‫لذا سأحصل على إحصائيات اللعب هنا حتى أتمكن من الوصول إلى الوظيفة الثابتة ، والحصول على ثواني دلتا العالمية

253
00:17:57,700 --> 00:18:01,150
‫وتذكر أن هذا يتطلب كائن سياق عالمي.

254
00:18:01,150 --> 00:18:04,030
‫لذلك سأقوم بتمرير هذا إلى ذلك.

255
00:18:04,030 --> 00:18:06,340
‫وأخيرًا ، نحتاج إلى سرعة داخلية.

256
00:18:06,340 --> 00:18:12,280
‫كلما زادت قيمة السرعة الداخلية ، زادت سرعة الإقحام نحو الهدف.

257
00:18:12,280 --> 00:18:18,550
‫لذا ، إذا قمت بتعيين هذا على القيمة مثلاً ، خمسة F ، فسنقوم بإقحامها ببطء إلى حد ما.

258
00:18:18,580 --> 00:18:20,470
‫دعونا نرى كيف يبدو هذا الآن.

259
00:18:20,470 --> 00:18:25,030
‫كل هذا في سطر واحد ويتم تشغيله من الشاشة.

260
00:18:25,030 --> 00:18:32,440
‫لذا ما سأفعله هو وضع المدخلات لضبط دوران العالم على خطه الخاص بهذا الشكل.

261
00:18:32,440 --> 00:18:34,060
‫هكذا فقط مثل ذلك.

262
00:18:34,060 --> 00:18:39,820
‫ثم مترجمنا ، الذي لديه معلمات الإدخال الأربعة هذه يعمل أيضًا خارج الشاشة.

263
00:18:39,820 --> 00:18:43,270
‫لذلك سأضع كل منهم على خطوطه الخاصة.

264
00:18:43,270 --> 00:18:49,420
‫بهذه الطريقة يمكننا رؤية جميع المدخلات دون الحاجة إلى التمرير خارج الشاشة بهذه الطريقة.

265
00:18:49,420 --> 00:18:49,840
‫حسنا.

266
00:18:49,840 --> 00:18:54,220
‫سوف أمضي قدمًا وحفظ ذلك وأبدأ البرمجة الحية.

267
00:18:54,220 --> 00:19:01,480
‫والآن إذا ضغطت على تشغيل وحركت الماوس ، لاحظ أن الأمر يستغرق بعض الوقت حتى يحدث هذا الدوران.

268
00:19:01,480 --> 00:19:06,430
‫هذا لأننا نستكمل بسلاسة نحو هذا الدوران المستهدف.

269
00:19:06,430 --> 00:19:07,780
‫الآن ، هذا رائع.

270
00:19:07,780 --> 00:19:09,340
‫هذا بالضبط ما أردت.

271
00:19:09,340 --> 00:19:14,950
‫بغض النظر عن الطريقة التي أحرك بها الماوس ، فلن أحصل على تلك الحركة السريعة المتقطعة والمتقطعة.

272
00:19:15,040 --> 00:19:20,170
‫الآن ، خمسة هي سرعة إنترنت بطيئة للغاية ، لكن يمكننا تغيير ذلك.

273
00:19:20,170 --> 00:19:21,820
‫يمكننا أن نجعلها أسرع قليلاً.

274
00:19:21,820 --> 00:19:28,420
‫سأقوم بتعيين هذا على 25 ، انظر كيف يبدو ذلك ، وسأسمح لك بالمضي قدمًا وتحديد القيمة التي

275
00:19:28,420 --> 00:19:30,040
‫تريدها للعبتك.

276
00:19:30,040 --> 00:19:34,450
‫لذا مرة أخرى ، ابدأ البرمجة الحية والضغط على التشغيل.

277
00:19:34,510 --> 00:19:39,010
‫الآن لدي استيفاء سريع جدًا ، لكنه لا ينفجر.

278
00:19:39,010 --> 00:19:42,910
‫لا يزال سريعًا ، لكنه ليس سريعًا.

279
00:19:42,910 --> 00:19:46,360
‫طالما أننا لا نفعل شيئًا كهذا ، حسنًا ، لن نفهم ذلك.

280
00:19:46,540 --> 00:19:47,860
‫سلوك مجنون.

281
00:19:47,860 --> 00:19:53,500
‫وبالطبع ، إذا كنت تريد دورانًا أبطأ ، فأنت تعرف كيفية القيام بذلك الآن وقد انتهينا من رسم

282
00:19:53,500 --> 00:19:56,220
‫مجال تصحيح الأخطاء ، لذلك سأقوم بإزالته.

283
00:19:56,230 --> 00:19:56,650
‫تمام.

284
00:19:56,650 --> 00:20:02,920
‫باختصار ، قمنا بتعيين دوران البرج ونمرر في نظرة على الهدف ، وهو

285
00:20:02,920 --> 00:20:05,800
‫متجه F يقابل نقطة في العالم.

286
00:20:05,800 --> 00:20:08,080
‫في الوقت الحالي نحن نستخدم نتيجة نتيجة التتبع فقط.

287
00:20:08,110 --> 00:20:13,090
‫الآن وضعنا هذه الوظيفة في فئة القاعدة وجعلناها محمية ، مما يعني أننا كنا

288
00:20:13,090 --> 00:20:15,880
‫قادرين على وراثة الوظيفة في فئة الخزان.

289
00:20:15,880 --> 00:20:21,190
‫وبمجرد أن نكون مستعدين لإنشاء فئة برج على أساس القاعدة - فإن فئة البرج تلك سترث

290
00:20:21,190 --> 00:20:24,610
‫وظيفة البرج الدوار هذه ويمكننا إعادة استخدامها.

291
00:20:24,610 --> 00:20:26,050
‫كل ما علينا القيام به هو المرور.

292
00:20:26,050 --> 00:20:32,380
‫في نظرة جديدة على Target ، سنعمل على إنشاء فئة برج مشتقة من القاعدة - في المحاضرات القادمة.

293
00:20:32,380 --> 00:20:33,250
‫سأراك قريبا.

