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