﻿1
00:00:03,990 --> 00:00:05,220
‫أهلا ومرحبا.

2
00:00:05,220 --> 00:00:07,980
‫في هذه المحاضرة نقوم بتنفيذ منصات متحركة.

3
00:00:07,980 --> 00:00:13,560
‫سنقوم بالفعل بجعل هذه المنصة تتحرك من خلال فهم شيء يسمى حلقة اللعبة

4
00:00:13,560 --> 00:00:17,010
‫وكيف ترتبط وظيفة التجزئة في C ++ بها.

5
00:00:17,010 --> 00:00:19,260
‫دعنا نتعمق ونكتشف.

6
00:00:19,410 --> 00:00:24,960
‫حتى هذه النقطة ، كنا نتجاهل هذه الوظيفة هنا ، دالة التجزئة.

7
00:00:24,960 --> 00:00:29,430
‫لقد وضعنا كل شيء في بدء التشغيل لأن هذا ما استخدمناه من قبل في Blueprint.

8
00:00:29,430 --> 00:00:32,400
‫لكن دعونا نلقي القليل من الضوء على وظيفة التجزئة هذه.

9
00:00:32,400 --> 00:00:38,340
‫لفهم القراد ، نحتاج إلى فهم مفهوم حلقة اللعبة ، وهذه هي الطريقة التي تبني بها معظم

10
00:00:38,340 --> 00:00:40,620
‫محركات الألعاب محركها.

11
00:00:40,620 --> 00:00:46,170
‫الطريقة التي تعمل بها هي ، أولاً وقبل كل شيء ، أن محرك اللعبة سوف يأخذ المدخلات من اللاعب.

12
00:00:46,170 --> 00:00:52,290
‫لذا ، مهما كان ما يحدث حاليًا ، سواء كان شريط المسافة معطلاً أو ما إذا كان مفتاح W ، سواء تم

13
00:00:52,290 --> 00:00:56,520
‫تحريك الماوس قليلاً ، سواء كان زر الماوس معطلاً ، كل هذه الأشياء

14
00:00:56,520 --> 00:01:00,360
‫سيتم استيعابها بواسطة محرك اللعبة ومعالجتها .

15
00:01:00,390 --> 00:01:05,640
‫ثم الشيء التالي هو أن المعلومات سوف تستخدم لتحديث حالة اللعبة.

16
00:01:05,640 --> 00:01:10,560
‫ربما يتحرك اللاعب للأمام قليلاً ، وربما سترتد الكرة ، وسيتم حساب كل هذه الأنواع

17
00:01:10,560 --> 00:01:17,340
‫من الأشياء وتشغيل محركات الفيزياء وكل هذا النوع من الأشياء الرائعة التي رأيناها في ألعابنا السابقة.

18
00:01:17,340 --> 00:01:21,930
‫والخطوة الثالثة هي أن محرك اللعبة سيأخذ حالة اللعبة ويقول ، حسنًا

19
00:01:21,930 --> 00:01:27,870
‫، حسنًا ، اللاعب هنا والكاميرا هنا ، الكرة هناك ، وسوف يعرضها على الشاشة.

20
00:01:27,870 --> 00:01:34,020
‫سيحولها من مجموعة من الأرقام إلى صورة لعرضها على شاشتك.

21
00:01:34,140 --> 00:01:41,910
‫الآن ، هذه الصورة تسمى الإطار ، الإطار عبارة عن صورة واحدة في سلسلة من الصور التي تشكل

22
00:01:41,910 --> 00:01:43,290
‫مقطع فيديو.

23
00:01:43,350 --> 00:01:50,730
‫الآن ، قد يكون جهاز الكمبيوتر الخاص بك قادرًا على عرض الكثير والكثير من الإطارات في الثانية ، أو قد يتم عرض عدد أقل.

24
00:01:50,730 --> 00:01:53,430
‫ولكن هذا يسمى معدل عرض الإطارات.

25
00:01:53,430 --> 00:01:58,710
‫كم عدد الإطارات في الثانية التي يمكن لجهاز الكمبيوتر الخاص بك المرور بها خلال حلقة اللعبة؟

26
00:01:58,710 --> 00:02:03,030
‫كم مرة يمكنه معالجة المدخلات وتحديث الحالة وعرضها؟

27
00:02:03,210 --> 00:02:11,040
‫هذه هي الإطارات في الثانية وفي غير الواقعية ، نستخدم وظيفة التجزئة لمساعدتنا في القيام بالخطوة الوسطى

28
00:02:11,040 --> 00:02:14,880
‫من حلقة اللعبة لمساعدتنا على تحديث حالة لعبتنا.

29
00:02:14,880 --> 00:02:20,280
‫إنها وظيفة تسمى كل إطار وتوجد في مخطط بالإضافة إلى حدث.

30
00:02:20,280 --> 00:02:27,750
‫لذلك تحصل على حدث التجزئة ويسمح لك بشكل أساسي بفعل شيء لتحديث لعبتك في كل إطار.

31
00:02:27,760 --> 00:02:33,720
‫الآن في حالتنا ، ما نريد أن نفعله بهذا هو السماح لها بتحريك منصتنا.

32
00:02:33,720 --> 00:02:35,130
‫فكيف يمكننا فعل ذلك؟

33
00:02:35,130 --> 00:02:43,020
‫حسنًا ، إذا أخذنا موقع الممثل المحدد وقمنا بإزالته من بدء التشغيل وبدلاً من ذلك قمنا بتحديث هذا الموقع

34
00:02:43,020 --> 00:02:49,920
‫في وضع علامة ، فلن يؤدي ذلك كثيرًا في البداية لأننا سنقوم فقط بتحديث موقعنا باستمرار إلى

35
00:02:49,920 --> 00:02:51,660
‫نفس الموقع.

36
00:02:51,660 --> 00:03:00,000
‫إذا قمنا بتعيين موقع الممثل ، والمتجه الخاص بي ، ثم الفاصلة المنقوطة ، فهذا مجرد كل إطار فردي ، كل

37
00:03:00,000 --> 00:03:02,190
‫تكرار خلال حلقة اللعبة.

38
00:03:02,220 --> 00:03:05,220
‫إنها ستضع الممثل في نفس المكان.

39
00:03:05,310 --> 00:03:11,790
‫ومع ذلك ، حيث يصبح هذا مثيرًا للاهتمام إذا قمنا بتحديث القيمة داخل المتجه الخاص بي.

40
00:03:11,790 --> 00:03:24,690
‫إذن ما يمكننا فعله هو أن نقول إن المتجه نقطتي z يساوي المتجه نقطتي z زائد واحد.

41
00:03:24,870 --> 00:03:31,260
‫إذن ما نفعله هنا هو أننا نأخذ القيمة الموجودة حاليًا في المتجه Z.

42
00:03:31,260 --> 00:03:40,860
‫نضيف واحدًا إليها ثم نأخذ هذه النتيجة بأكملها ونعيدها إلى المتجه dot

43
00:03:40,860 --> 00:03:41,640
‫z.

44
00:03:42,000 --> 00:03:49,020
‫لذلك في كل مرة نمر فيها من خلال حلقة اللعبة هذه ويتم استدعاء العلامة من قبل المحرك غير الواقعي

45
00:03:49,170 --> 00:03:51,630
‫، يجب أن يزيد متجه z بمقدار واحد.

46
00:03:51,690 --> 00:03:53,700
‫لذلك دعونا نرى ما هي نتيجة هذا.

47
00:03:53,700 --> 00:04:00,210
‫نذهب إلى Unreal ونضغط على زر الترجمة ثم نضغط على play.

48
00:04:00,210 --> 00:04:07,140
‫يجب أن نرى أن هذه المنصة ترتفع ، وتطفو في الهواء لأنني أقوم بزيادة موقعها

49
00:04:07,140 --> 00:04:11,100
‫Z ، لذلك أجعلها ترتفع أعلى وأعلى.

50
00:04:11,100 --> 00:04:16,770
‫لذا أود منك أن تجرب تغيير Y بدلاً من تغيير Z.

51
00:04:16,770 --> 00:04:18,960
‫لذا قم بتغيير السطر الصحيح من التعليمات البرمجية.

52
00:04:18,960 --> 00:04:21,840
‫قد تحتاج إلى تغيير بعض أكثر من مكان.

53
00:04:21,840 --> 00:04:29,760
‫قم بتغيير حجم مكعب النظام الأساسي بحيث يكون نظامًا أساسيًا جيدًا بالنسبة لك للقفز ومعرفة ما إذا كان تحديث Y بدلاً من تحديث

54
00:04:29,760 --> 00:04:35,160
‫Z يسمح لك بالقفز إلى النظام الأساسي وإيقاف الفيديو مؤقتًا والقيام بالذهاب.

55
00:04:38,260 --> 00:04:38,770
‫تمام.

56
00:04:38,770 --> 00:04:39,470
‫مرحبًا بعودتك.

57
00:04:39,490 --> 00:04:42,250
‫لذلك دعونا نتعمق في كود Visual Studio.

58
00:04:42,250 --> 00:04:49,510
‫وما نريد فعله هو جعل المتجه y مساويًا للمتجه y زائد واحد.

59
00:04:49,510 --> 00:04:54,880
‫لذلك سوف يتحرك على طول المحور Y بدلاً من المحور Z.

60
00:04:55,180 --> 00:05:00,370
‫وبعد ذلك سنقوم بتعيين موقع كل إطار على النتيجة المخزنة في متغير المتجه

61
00:05:00,370 --> 00:05:01,120
‫الخاص بي.

62
00:05:01,120 --> 00:05:05,050
‫لذلك سنعود إلى Unreal ونتأكد من أننا نجمعها.

63
00:05:05,050 --> 00:05:10,720
‫ثم سنبحث في المخطط التفصيلي للمنصة المتحركة ونختارها.

64
00:05:10,720 --> 00:05:12,400
‫انتقل إلى جزء التفاصيل.

65
00:05:12,850 --> 00:05:19,420
‫وهنا نريد أن ننقر مرتين على المنصة حتى نتمكن من رؤيتها ثم نرغب في توسيع

66
00:05:19,420 --> 00:05:20,950
‫نطاقها قليلاً.

67
00:05:20,950 --> 00:05:29,350
‫لذلك سأستخدم أداة القياس مع المفتاح R وسأزيد المقياس Y و X وخفض

68
00:05:29,350 --> 00:05:31,030
‫المقياس Z.

69
00:05:31,030 --> 00:05:32,740
‫لذا فإن منصتي أقصر قليلاً.

70
00:05:32,740 --> 00:05:40,450
‫مثل ، إذن سنقوم أيضًا بحفظ مستوى اللعب الضرب والمنصة تطفو على

71
00:05:40,450 --> 00:05:41,410
‫يميني.

72
00:05:41,410 --> 00:05:45,070
‫لذا فهو أيضًا أكبر ، مما يعني أنه يمكنني الوقوف والوقوف عليه.

73
00:05:45,190 --> 00:05:45,970
‫وها نحن ذا.

74
00:05:45,970 --> 00:05:48,280
‫لدينا أول جزء صغير من ميكانيكي اللعبة.

75
00:05:48,280 --> 00:05:49,600
‫لدينا منصة متحركة.

76
00:05:49,600 --> 00:05:54,130
‫لن نتقدم إلى الوراء والأمام في أننا سنكتشف المزيد عن ذلك في المحاضرات

77
00:05:54,130 --> 00:05:55,330
‫القادمة.

78
00:05:55,330 --> 00:06:00,400
‫لكن في الوقت الحالي ، قمنا بالفعل بتنفيذ بعض وظائف اللعبة في C ++.

79
00:06:00,400 --> 00:06:02,590
‫أعتقد أنك يجب أن تكون فخوراً بنفسك في هذه اللحظة.

80
00:06:02,590 --> 00:06:05,950
‫ربّت على ظهرك وسأراكم في المحاضرة القادمة.

