﻿1
00:00:04,430 --> 00:00:05,450
‫أهلا ومرحبا.

2
00:00:05,450 --> 00:00:11,720
‫في هذه المحاضرة ، سننظر في كيفية ضبط منصتنا المتحركة باستخدام سرعة متجه في متغيرات

3
00:00:11,720 --> 00:00:12,890
‫أعضائها.

4
00:00:12,890 --> 00:00:18,740
‫وسننظر في كيفية جعل معدل إطار الحركة مستقلاً باستخدام شيء يسمى

5
00:00:18,740 --> 00:00:19,640
‫وقت دلتا.

6
00:00:19,640 --> 00:00:20,930
‫حسنًا ، دعنا نتعمق.

7
00:00:21,200 --> 00:00:28,180
‫حتى هذه النقطة ، كنا نحدِّث مكونًا واحدًا من المتجه في وقت واحد.

8
00:00:28,190 --> 00:00:31,070
‫الآن ، ماذا لو أخبرتك أنه لا يتعين علينا القيام بذلك بهذه الطريقة؟

9
00:00:31,070 --> 00:00:36,110
‫ماذا لو تمكنا من تحديث المتجه بالكامل بمقدار معين دفعة واحدة؟

10
00:00:36,110 --> 00:00:41,450
‫حسنًا ، يمكننا إضافة المتجهات إلى متجهات أخرى إذا رأينا ذلك في القسم السابق.

11
00:00:41,450 --> 00:00:47,780
‫إذن ما يمكننا فعله هو الانتقال إلى منصاتنا المتحركة H وإنشاء شيء ما هو متجه سرعة المنصة

12
00:00:47,780 --> 00:00:53,510
‫المتحركة لدينا والذي يخبرنا بالاتجاه والسرعة اللذين نريد أن نسير بهما.

13
00:00:53,510 --> 00:01:01,340
‫لذا فإن الطريقة التي نقوم بها بذلك هي إنشاء خاصية U مألوفة إلى حد ما الآن وسنقوم بتعديلها

14
00:01:01,340 --> 00:01:07,550
‫في أي مكان بحيث تكون مرئية في المفتش ومن ثم ستكون متجهًا من النوع F كما

15
00:01:07,550 --> 00:01:15,770
‫فعلنا من قبل ، ونحن سوف نسميها سرعة المنصة ويمكننا أن نعطيها شيئًا ما في الوقت الحالي.

16
00:01:15,770 --> 00:01:23,150
‫لذلك سنقوم بعمل مُنشئ متجه F ثم سنعطيه على سبيل المثال 100 في المكون X وصفر وصفر في المكونات

17
00:01:23,150 --> 00:01:26,990
‫الأخرى ثم فاصلة منقوطة لإنهائه.

18
00:01:26,990 --> 00:01:32,960
‫وأريد أن أريكم خدعة واحدة أخرى هنا وهي أنه إلى جانب التعديل ، في أي مكان يمكننا وضع

19
00:01:32,960 --> 00:01:38,450
‫وسيطة أخرى مفصولة بفاصلة إلى شيء خاص بخاصية U ، والذي يبدو قليلاً كدالة.

20
00:01:38,450 --> 00:01:46,130
‫في الواقع ، يمكنك وضع فئة تسمى الفئة بحرف C كبير ثم تضع علامة التساوي.

21
00:01:46,130 --> 00:01:50,870
‫وعادة ما أترك مسافة بين فئة علامات التساوي هذه تساوي.

22
00:01:50,870 --> 00:01:54,380
‫وبعد ذلك يمكنك إعطاء فئة تريد أن تظهر.

23
00:01:54,380 --> 00:01:58,220
‫هنا يمكنك أن ترى أن هناك فئات لنسخ التحويل المتماثل.

24
00:01:58,220 --> 00:02:03,050
‫هذه هي أنواع الفئات التي نعني أنني سأطلق عليها اسم النظام الأساسي المتحرك الخاص بي بحيث يكون لدينا

25
00:02:03,050 --> 00:02:05,990
‫نوع من فئة النظام الأساسي المتحرك لوضع هذه المتغيرات فيه.

26
00:02:05,990 --> 00:02:10,580
‫ولاحظ أنني أستخدم علامات اقتباس مزدوجة حول هذه الفئة.

27
00:02:10,580 --> 00:02:11,900
‫هذا هو النحو الصحيح.

28
00:02:11,900 --> 00:02:13,310
‫أنت بحاجة إلى تضمين هؤلاء.

29
00:02:13,730 --> 00:02:22,730
‫وبعد ذلك ما يمكننا القيام به هو أنه يمكننا الاستفادة من متغير العضو الجديد هذا في C ++.

30
00:02:22,730 --> 00:02:29,570
‫لذا بدلاً من تعيين المكون X للموقع الحالي ، دعني أزيل هذا السطر

31
00:02:29,570 --> 00:02:40,430
‫تمامًا وأعد كتابته لأن الموقع الحالي يساوي الموقع الحالي بالإضافة إلى سرعة النظام الأساسي مثل.

32
00:02:40,430 --> 00:02:48,740
‫لذا ضع فاصلة منقوطة في نهاية السطر ودعنا ننتقل إلى Unreal ونضغط على compile ونرى كيف تسير الأمور.

33
00:02:48,740 --> 00:02:50,510
‫لذلك تم تجميعها بنجاح.

34
00:02:50,510 --> 00:02:56,690
‫ويمكنك أن ترى الآن أن لدي قسم المنصة المتحركة هذا على منصتي المتحركة بسرعة

35
00:02:56,690 --> 00:02:59,150
‫منصة ومكونها x مضبوط على 100.

36
00:02:59,150 --> 00:03:00,920
‫ماذا يحدث إذا ذهبت وضغطت اللعب؟

37
00:03:00,920 --> 00:03:06,500
‫حسنًا ، تتسارع المنصة بسرعة في المسافة لأنني أقوم بإضافة 100 وحدة لكل إطار.

38
00:03:06,500 --> 00:03:08,120
‫هذا كثير.

39
00:03:08,120 --> 00:03:13,790
‫لكني أريده أن يتحرك بسرعة حوالي 100 سم في الثانية.

40
00:03:13,790 --> 00:03:15,020
‫هذا فقط متر واحد في الثانية.

41
00:03:15,020 --> 00:03:16,550
‫إنه ليس سريعًا جدًا.

42
00:03:16,550 --> 00:03:18,980
‫فلماذا تسير بهذه السرعة؟

43
00:03:18,980 --> 00:03:20,450
‫حسنًا ، بسبب معدل عرض الإطارات.

44
00:03:20,450 --> 00:03:23,870
‫حسنًا ، إذا كنت على نظام أبطأ ، فسيكون التحرك أبطأ.

45
00:03:23,870 --> 00:03:25,940
‫وإذا كنت على نظام أسرع ، فسوف يتحرك بشكل أسرع.

46
00:03:25,940 --> 00:03:27,200
‫لا يبدو أن هذا منطقي.

47
00:03:27,200 --> 00:03:29,930
‫لذلك دعونا نتحدث عن استخدام دلتا تايم.

48
00:03:29,930 --> 00:03:31,430
‫ما هو وقت دلتا؟

49
00:03:31,700 --> 00:03:37,940
‫حسنًا ، يمكن أن يخبرنا استخدام Delta time في Unreal عن المدة التي استغرقها كل إطار في التنفيذ.

50
00:03:37,940 --> 00:03:38,990
‫أين وقت الدلتا؟

51
00:03:38,990 --> 00:03:45,710
‫حسنًا ، إذا انتقلت إلى كود Visual Studio ، يمكنك أن ترى أن Delta time متغير مذكور هنا في الجزء العلوي

52
00:03:45,710 --> 00:03:46,640
‫من العلامة.

53
00:03:46,640 --> 00:03:49,340
‫هذا هو في الواقع معلمة إدخال.

54
00:03:49,340 --> 00:03:51,680
‫إنها مدخلات الدالة.

55
00:03:51,680 --> 00:03:57,110
‫لذا يمكننا استخدامه هنا بشكل أساسي كما نستخدم متغيرًا محليًا ، يمكننا استخدامه داخل

56
00:03:57,110 --> 00:03:58,400
‫جسم دالة التجزئة.

57
00:03:58,850 --> 00:04:01,550
‫لذلك فهو يخبرنا بالوقت الذي استغرقه تنفيذ الإطار.

58
00:04:01,550 --> 00:04:02,600
‫لكن لماذا هذا مهم؟

59
00:04:02,600 --> 00:04:09,680
‫لأنه عندما نضاعف شيئًا ما في وقت دلتا ، فهذا يجعل معدل إطار لعبتنا مستقلاً بشكل أساسي ، مما يعني أساسًا

60
00:04:09,680 --> 00:04:14,690
‫أن اللعبة تتصرف بنفس الطريقة على جهاز كمبيوتر سريع أو بطيء.

61
00:04:14,690 --> 00:04:20,150
‫لذلك دعونا نلقي نظرة على مثال توضيحي إذا كنت أرغب في نقل شيء ما بمقدار وحدة واحدة إلى اليسار

62
00:04:20,150 --> 00:04:21,170
‫في كل ثانية.

63
00:04:21,350 --> 00:04:23,420
‫وإليك كيف ستبدو على الأجهزة المختلفة.

64
00:04:23,420 --> 00:04:24,380
‫لدي جهاز كمبيوتر بطيء.

65
00:04:24,380 --> 00:04:29,810
‫يمكنه فقط عمل عشرة إطارات في الثانية وجهاز كمبيوتر سريع يمكنه عمل 100 إطار في الثانية.

66
00:04:29,810 --> 00:04:32,630
‫الآن مدة تلك الإطارات مختلفة.

67
00:04:32,630 --> 00:04:36,380
‫لذلك على الكمبيوتر البطيء ، مدة الإطار هي 0. 1 من الثانية.

68
00:04:36,380 --> 00:04:42,650
‫إذا كان بإمكاني إدخال عشرة منهم فقط في الثانية وعلى جهاز كمبيوتر سريع فسيكون 0. 01 من الثانية ، أقل من ذلك بكثير لأنه يمكنه

69
00:04:42,650 --> 00:04:45,380
‫تنفيذ الأشياء بشكل أسرع.

70
00:04:45,380 --> 00:04:47,600
‫لا يستغرق الأمر وقتًا طويلاً لحساب إطار.

71
00:04:47,990 --> 00:04:54,530
‫لذا ، إذا قمت بضربها في مدة الإطار ، أضرب الوحدة الخاصة بي في مدة الإطار.

72
00:04:54,530 --> 00:04:58,100
‫ثم سترى ذلك في 1/2.

73
00:04:58,100 --> 00:05:03,710
‫لذلك ، حيث تم تنفيذ عشرة إطارات ، أحصل على وحدة حركة واحدة.

74
00:05:04,010 --> 00:05:05,150
‫وينطبق الشيء نفسه.

75
00:05:05,150 --> 00:05:11,510
‫إذا قمت بتنفيذ 100 إطار ، ما زلت أحصل على وحدة حركة واحدة.

76
00:05:11,510 --> 00:05:15,560
‫لذلك أود أن أتحداك أن تضرب في وقت دلتا.

77
00:05:15,560 --> 00:05:21,920
‫ما سنفعله هو أن نتذكر أنه يمكننا ضرب المتجهات في قيمة النقطة العائمة

78
00:05:21,920 --> 00:05:23,960
‫لقياس مقدارها.

79
00:05:24,110 --> 00:05:29,150
‫والطريقة التي يمكننا بها القيام بذلك في C ++ هي استخدام عامل التشغيل star.

80
00:05:29,150 --> 00:05:30,560
‫هذه هي طريقة الضرب.

81
00:05:30,560 --> 00:05:32,990
‫لا يوجد عامل تشغيل إشارة الضرب.

82
00:05:32,990 --> 00:05:39,200
‫قد يتم الخلط بينه وبين X ، لذلك نستخدم عامل التشغيل النجمي للإشارة إلى الضرب

83
00:05:39,200 --> 00:05:41,930
‫، وأود منك تجميع واختبار نتائجك.

84
00:05:41,930 --> 00:05:47,840
‫لذا اضرب في زمن دلتا ، واضرب السرعة في زمن دلتا وانظر ماذا سيحدث ، بالإضافة إلى الفيديو وانطلق.

85
00:05:50,780 --> 00:05:51,350
‫تمام.

86
00:05:51,350 --> 00:05:52,010
‫مرحبًا بعودتك.

87
00:05:52,010 --> 00:05:55,040
‫إذن فهي سرعة المنصة التي نريد ضربها هنا.

88
00:05:55,280 --> 00:06:00,200
‫يمكننا الآن إخراج هذا إلى متغير منفصل ، لكن في الواقع ، يمكننا فقط وضع

89
00:06:00,200 --> 00:06:07,340
‫مضروب في زمن دلتا في نهاية هذا السطر ، قبل الفاصلة المنقوطة بوضوح ، لأنه يقع قبل نهاية العبارة.

90
00:06:07,790 --> 00:06:13,670
‫والمثير هنا هو أن هناك القليل من أسبقية العوامل التي تحدث

91
00:06:13,670 --> 00:06:21,020
‫هنا حيث أن الضرب بين سرعة النظام الأساسي ووقت دلتا سيحدث قبل الإضافة إلى

92
00:06:21,020 --> 00:06:23,000
‫الموقع الحالي.

93
00:06:23,000 --> 00:06:27,860
‫الآن هذا يتبع القواعد الرياضية العادية للحصول على قائمة كاملة بهذه القواعد.

94
00:06:27,860 --> 00:06:33,530
‫لن أخوض في تفاصيلها هنا ، لكن يمكنك إلقاء نظرة على الصفحة حسب ترتيب العمليات

95
00:06:33,530 --> 00:06:35,510
‫على ويكيبيديا.

96
00:06:35,510 --> 00:06:40,820
‫هناك الكثير من القواعد المختلفة بلغات مختلفة ، سواء كانت كتلة الجسم ، أو كتلة المزايدة ، أو كتلة البدانة ، أو

97
00:06:40,820 --> 00:06:41,570
‫كتلة السرير.

98
00:06:41,600 --> 00:06:43,040
‫هناك الكثير من الاختصارات المختلفة.

99
00:06:43,040 --> 00:06:47,030
‫لذا ، أيًا كان الشخص الذي نشأت على استخدامه ، فهذا هو الذي أوصي باستخدامه.

100
00:06:47,030 --> 00:06:50,390
‫بالنسبة لي ، كانت كتلة الجسم ، لكنها مختلفة في أماكن أخرى.

101
00:06:50,390 --> 00:06:57,410
‫لذا من الجدير بالذكر أنه يمكننا كتابته على هذا النحو ، ولكن إذا أردنا أن نتأكد من حدوث شيء ما بترتيب

102
00:06:57,410 --> 00:07:02,060
‫مختلف عن ذلك ، فيمكنك استخدام الأقواس للإشارة إلى هذا.

103
00:07:02,060 --> 00:07:07,520
‫لذا يمكنني ، فقط لتوضيح الأمور ، سأضع أقواسًا حول عملية الضرب هذه فقط لأوضح

104
00:07:07,520 --> 00:07:08,990
‫لكم أن هذا ما يحدث.

105
00:07:08,990 --> 00:07:13,190
‫الضرب أولاً ثم الإضافة إلى الموقع الحالي.

106
00:07:13,490 --> 00:07:16,370
‫لذا دعنا ننتقل إلى Unreal ونختبر ذلك.

107
00:07:16,370 --> 00:07:19,550
‫سنقوم بالضرب والتجميع وعندما يتم ذلك ، فلنبدأ اللعب.

108
00:07:19,550 --> 00:07:24,410
‫والآن نرى المنصات تتحرك بسرعة أكبر بكثير لأنها تتحرك في الواقع بمعدل

109
00:07:24,410 --> 00:07:28,040
‫متر واحد في الثانية ، وهو أمر جيد لمنصة متحركة.

110
00:07:28,040 --> 00:07:35,600
‫لذا يمكنك أن ترى أن هذا قد ساعدنا على تقليل السرعة ، ولكن أيضًا الآن هذا معدل إطارات ، سرعة

111
00:07:35,600 --> 00:07:36,370
‫مستقلة.

112
00:07:36,380 --> 00:07:40,670
‫إذا كان جهاز الكمبيوتر الخاص بي يتأرجح لأن شيئًا آخر يحدث في الخلفية ، فسيظل

113
00:07:40,670 --> 00:07:43,550
‫هذا يبدو كما هو ويلعب نفس الشيء في اللعبة.

114
00:07:43,550 --> 00:07:44,090
‫أشياء عظيمة.

115
00:07:44,090 --> 00:07:46,610
‫سأراك في المحاضرة القادمة.

