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