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