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