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