﻿1
00:00:04,390 --> 00:00:05,440
‫أهلا ومرحبا.

2
00:00:05,440 --> 00:00:10,000
‫في هذه المحاضرة ، سنضيف مكونًا جديدًا لمشغل BP لدينا ، وهو مقبض الفيزياء.

3
00:00:10,000 --> 00:00:16,060
‫وسوف نتعلم كيف يمكننا الحصول على مؤشر له في مكون الإمساك.

4
00:00:16,060 --> 00:00:20,800
‫سننظر أيضًا في كيفية حماية أنفسنا من تعطل المحرك عن طريق الخطأ.

5
00:00:20,800 --> 00:00:23,380
‫دعونا نتعمق ونرى كيف.

6
00:00:24,280 --> 00:00:29,380
‫الآن ، من أجل الإمساك بجسم ما ، نحتاج إلى التفاعل مع نظام الفيزياء.

7
00:00:29,380 --> 00:00:37,090
‫وهناك عنصر في الواقع يمكننا استخدامه يسمى مقبض الفيزياء ، والذي يسمح لنا بالاستيلاء على الأشياء المادية وإخبارهم

8
00:00:37,090 --> 00:00:43,090
‫بالمكان الذي نريد أن نكون فيه في العالم ، ولكن نفعل ذلك بطريقة تعترف بالقيود المادية لذلك

9
00:00:43,090 --> 00:00:45,760
‫لا تفعل ذلك. ر عبر الجدران.

10
00:00:46,180 --> 00:00:53,200
‫ويبدو نوعًا ما أن الكائن موجود في زنبرك بدلاً من اتباع نقطة معينة بشكل صارم ونطلب منه

11
00:00:53,200 --> 00:00:54,880
‫الانتقال إليه.

12
00:00:55,030 --> 00:00:57,910
‫لذلك سنستخدم هذه الفيزياء للتعامل مع المكونات.

13
00:00:57,910 --> 00:01:02,230
‫سنذهب ونضيفه إلى لاعبنا ، BP ، جنبًا إلى جنب مع المنتزع.

14
00:01:02,230 --> 00:01:09,790
‫لذلك دعنا ننتقل إلى زر الإضافة أسفل جزء المكونات ونبحث عن مقبض الفيزياء ونضيفه.

15
00:01:09,790 --> 00:01:14,290
‫ويمكنك أن ترى أنه عنصر فاعل ، وليس مكون مشهد ، لأنه ينزل في القسم

16
00:01:14,290 --> 00:01:18,460
‫السفلي لذلك لا يحتوي في الواقع على تحويل مادي خاص به.

17
00:01:18,460 --> 00:01:23,830
‫ما نفعله بالمقبض الفيزيائي هو أننا نقول له الشيء الذي يجب أن يمسكه ثم نخبره حيث

18
00:01:23,830 --> 00:01:26,170
‫نريده أن نضع الشيء الذي أمسكناه.

19
00:01:26,290 --> 00:01:32,050
‫إذا انتقلت إلى الوثائق ، يمكنك رؤية ذلك في الوظائف المتاحة.

20
00:01:32,060 --> 00:01:39,430
‫إذا قمت بالتمرير لأسفل إلى قسم الوظيفة ، يمكنك أن ترى أن هناك مكون إصدار ومكون انتزاع

21
00:01:39,430 --> 00:01:41,320
‫في وظيفة الموقع.

22
00:01:41,320 --> 00:01:45,940
‫هناك أيضًا موقع مستهدف محدد ودوران.

23
00:01:45,940 --> 00:01:51,160
‫هذا هو المكان الذي يريد أن يحاول وضع الشيء فيه ، ولكن من الواضح أنه سيحترم

24
00:01:51,160 --> 00:01:56,440
‫أي قيود مادية في القيام بذلك وسيفعل ذلك بطريقة سلسة كما لو كان في نبع.

25
00:01:56,440 --> 00:02:02,440
‫الآن ، لن نستخدم هذه الوظائف حتى الآن ، لكننا بحاجة إلى إيجاد طريقة للحصول

26
00:02:02,440 --> 00:02:05,470
‫على هذا المكون في مكون الإمساك.

27
00:02:05,590 --> 00:02:07,780
‫فكيف لنا أن نفعل ذلك؟

28
00:02:07,780 --> 00:02:15,310
‫حسنًا ، دعنا ننتقل إلى الحصول على CP الخاص بنا ونلقي نظرة على بدء اللعب ومحاولة الحصول عليه.

29
00:02:15,310 --> 00:02:23,980
‫الآن هناك وظيفة على أي فاعل تسمح لنا بالعثور على مكون حسب نوعه.

30
00:02:23,980 --> 00:02:27,190
‫لكن ما هو نوع المقبض المادي؟

31
00:02:27,190 --> 00:02:31,180
‫حسنًا ، إنه عنصر معالجة فيزيائي لك.

32
00:02:31,180 --> 00:02:36,670
‫الآن ، للحصول على هذا النوع ، نحتاج إلى استخدام التضمين ويمكنك أن ترى أن التضمين في التوثيق هو محرك

33
00:02:36,670 --> 00:02:40,180
‫الفيزياء المائل للأمام ، ومكونات التعامل مع الفيزياء.

34
00:02:40,180 --> 00:02:46,420
‫دعنا ننسخ ذلك إلى الاستيلاء على CP وإضافته تحت إضافة مساعدين تصحيح الأخطاء.

35
00:02:46,870 --> 00:02:53,470
‫ثم ما سنفعله هو أننا سنقوم بالحصول على ONA للحصول

36
00:02:53,590 --> 00:03:00,370
‫على مؤشر ، ثم عمل سهم وإيجاد عنصر رائع حسب الفصل.

37
00:03:00,370 --> 00:03:07,540
‫الآن هذه الوظيفة هي نوع خاص من الوظائف تسمى دالة القالب في C ++ ، وهذا يعني

38
00:03:07,540 --> 00:03:14,410
‫أنه يمكنك تمرير بعض المعلمات التي يتم تقييمها بالفعل عند الترجمة.

39
00:03:14,410 --> 00:03:19,090
‫والطريقة التي تفعل بها ذلك هي استخدام أقواس زوايا كهذه.

40
00:03:19,090 --> 00:03:25,330
‫لذلك تستخدم قوس زاوية بعد الوظيفة وتعطيه النوع الذي تريده أن يجد

41
00:03:25,330 --> 00:03:30,910
‫، والذي في حالتنا هو عنصر التعامل مع الفيزياء مثل ذلك.

42
00:03:30,970 --> 00:03:33,250
‫ثم تقوم بإغلاق أقواس الزاوية.

43
00:03:33,250 --> 00:03:37,660
‫لكن لأنها دالة ، تحتاج إلى تسميتها باستخدام الأقواس العادية أيضًا.

44
00:03:37,660 --> 00:03:41,680
‫ثم تضع المجموعة الثانية من الأقواس بعد ذلك.

45
00:03:41,680 --> 00:03:48,640
‫لذلك يمكنك أن ترى أن وسيطات وقت التجميع هذه يتم تمريرها باستخدام أقواس الزاوية

46
00:03:48,640 --> 00:03:52,330
‫ثم يتم تمريرها باستخدام الأقواس.

47
00:03:52,630 --> 00:03:58,900
‫الآن ، مثل الوظيفة العادية ، سيكون لها قيمة إرجاع وفي هذه الحالة ستكون القيمة

48
00:03:58,900 --> 00:04:01,390
‫المعادة هي أي نوع مررنا هنا.

49
00:04:01,390 --> 00:04:08,680
‫ولكن كمؤشر ، يمكننا أن نأخذ مؤشرًا للفيزياء يتعامل مع مكون مكون وننشئ متغيرًا لذلك

50
00:04:08,680 --> 00:04:16,390
‫الذي سنطلق عليه مقبض الفيزياء ونجعله مساويًا للحصول على مالك يجد مكونًا حسب الفصل.

51
00:04:16,390 --> 00:04:21,910
‫الآن دعنا نتذكر فاصلة منقوطة في نهاية هذا السطر وهذا هو كل ما هو مطلوب

52
00:04:21,910 --> 00:04:26,110
‫حتى نتمكن من الحصول على مكون آخر على نفس الممثل.

53
00:04:26,110 --> 00:04:32,740
‫تذكر الآن أنني أخبرتك أن المؤشرات يمكن أن تكون خطيرة لأنها في بعض الأحيان يمكن أن تكون فارغة

54
00:04:32,740 --> 00:04:34,720
‫ويمكن أن يؤدي ذلك إلى تعطل.

55
00:04:34,720 --> 00:04:42,100
‫لذا تخيل أننا نسينا وضع عنصر مقبض فيزيائي على ممثلنا ، أو وضعنا ممسكًا على ممثل

56
00:04:42,100 --> 00:04:46,180
‫جديد ولم نربطه بمكون مقبض فيزيائي بعد.

57
00:04:46,180 --> 00:04:52,510
‫إذا كانت هذه هي الحالة ، فسيكون مؤشر مقبض الفيزياء مؤشرًا فارغًا.

58
00:04:52,510 --> 00:04:59,020
‫وإذا حاولنا استخدام عامل تشغيل السهم أو عامل الإشارة على هذا المؤشر ، فسوف يتسبب ذلك في تعطل

59
00:04:59,020 --> 00:05:03,340
‫محركنا وقد يكون من الصعب أحيانًا رؤية شكل هذا التعطل.

60
00:05:03,340 --> 00:05:10,000
‫لذلك سأستمر وأتسبب في هذا الانهيار فقط لأظهر لك وقد تكون قادرًا على التعرف عليه إذا

61
00:05:10,000 --> 00:05:15,700
‫حدث لك في المستقبل ، سأقوم بإعادة تعيين مؤشر مقبض الفيزياء الخاص بنا الذي

62
00:05:15,700 --> 00:05:18,010
‫يساوي المؤشر الفارغ .

63
00:05:19,060 --> 00:05:20,320
‫كلمة رئيسية خاصة.

64
00:05:20,320 --> 00:05:21,630
‫كل شيء فارغ.

65
00:05:21,640 --> 00:05:24,550
‫Peter هذه هي الطريقة التي تتهجى بها المؤشر الفارغ في C ++.

66
00:05:24,550 --> 00:05:28,030
‫ثم تضع فاصلة منقوطة في النهاية ، ثم ما سنفعله هو أننا

67
00:05:28,030 --> 00:05:32,410
‫سنفعل الفيزياء ، ونتعامل مع السهم ، ونحصل على اسم مثل ذلك.

68
00:05:32,620 --> 00:05:38,200
‫وإذا مضينا قدمًا وقمنا بالتجميع باستخدام البرمجة الحية وعند الانتهاء من التجميع

69
00:05:38,200 --> 00:05:43,790
‫، فسنمضي قدمًا ونتأكد ، أولاً وقبل كل شيء ، من حفظ أي شيء لدينا هنا في إعادة العرض لأنني

70
00:05:43,840 --> 00:05:50,140
‫على وشك لتعطل المحرك وإذا تقدمت وضغطت على التشغيل ، فهذه هي النتيجة التي نحصل عليها.

71
00:05:50,140 --> 00:05:55,390
‫المراسل وقد تميل إلى التفكير عندما ترى هذا أن شيئًا ما قد حدث بشكل غير واقعي ، ولكن في الواقع

72
00:05:55,390 --> 00:05:58,440
‫هو الخطأ في التعليمات البرمجية الخاصة بك هنا.

73
00:05:58,450 --> 00:06:06,220
‫يمكنك أن ترى أنه في تقرير التعطل هذا ، يشير السطر الأول إلى أن المشكلة تأتي من انتزاع نقطتين ،

74
00:06:06,250 --> 00:06:08,230
‫ونقطتين ، وبدء اللعب.

75
00:06:08,230 --> 00:06:11,760
‫وهو يعطينا رقم الخط أيضًا ، وهو الخط 28.

76
00:06:11,770 --> 00:06:18,490
‫لذلك يمكنك أن ترى أنه في هذه المرحلة في السطر 28 ، عندما أشرنا إلى هذا المؤشر ، من

77
00:06:18,490 --> 00:06:26,800
‫أجل استدعاء دالة عليه ، ارتكبنا خطأ فادحًا في عدم التحقق أولاً مما إذا كان هذا المؤشر فارغًا.

78
00:06:26,860 --> 00:06:28,330
‫لذلك هذا ما نحتاج إلى القيام به.

79
00:06:28,330 --> 00:06:29,710
‫ونفعل ذلك ببيان if.

80
00:06:29,710 --> 00:06:41,440
‫نقول أساسًا إذا كان المقبض الفيزيائي لا يساوي مؤشر فارغ ، فيمكننا المضي قدمًا واستدعاء الأشياء على مقبض الفيزياء هذا حتى نتمكن من

81
00:06:41,440 --> 00:06:46,900
‫وضع المقبض المادي ، والحصول على اسم داخل عبارة if وهذا يحمينا

82
00:06:46,900 --> 00:06:52,120
‫لأن هذا الرمز ، هذا D لن يتم تنفيذ الكود المرجعي في حالة وجود

83
00:06:52,120 --> 00:06:53,380
‫مؤشر فارغ.

84
00:06:53,380 --> 00:06:58,330
‫لذلك سأقوم بإزالة السطر 27 الآن حيث نقوم بتعيينه على مؤشر فارغ.

85
00:06:58,330 --> 00:07:02,710
‫وسوف أتحداك أن تطبع اسم المكون بنفسك.

86
00:07:02,710 --> 00:07:10,930
‫لذا ، فقط إذا كان لدينا المكون الفعلي ، فنحن في الأساس لا نملك مؤشرًا فارغًا ونستخدم عنصرًا آخر للتحذير إذا لم

87
00:07:10,930 --> 00:07:17,230
‫نتمكن من الحصول على هذا المكون ومحاولة إزالة المكون للتحقق ، وإيقاف الفيديو مؤقتًا

88
00:07:17,230 --> 00:07:19,180
‫والحصول على الذهاب.

89
00:07:22,290 --> 00:07:22,770
‫تمام.

90
00:07:22,770 --> 00:07:23,690
‫مرحبًا بعودتك.

91
00:07:23,700 --> 00:07:33,600
‫لذلك سنقوم بإنشاء رسالة تسجيل جديدة هنا وسنقول أن لديك معالجة فيزيائية للقولون sx ولدينا اسم

92
00:07:33,600 --> 00:07:40,200
‫مقبض فيزيائي هذا الذي سأقوم بقصه ولصقه على أنه الوسيطات الثانية

93
00:07:40,200 --> 00:07:43,260
‫أو الحجج الرابعة في سجل U.

94
00:07:43,320 --> 00:07:46,950
‫وسأضع نجمة لأنها سلسلة.

95
00:07:46,950 --> 00:07:50,250
‫الآن دعنا نضيف تعليمة else ضمن بيان if الخاص بنا.

96
00:07:50,250 --> 00:07:55,500
‫وهنا سنضع سجل U آخر ، والذي سيكون هذه المرة بدلاً من

97
00:07:55,500 --> 00:08:02,340
‫العرض ، سنضع رسالة تحذير من النوع الذي سيظهر باللون الأصفر وسنقول

98
00:08:02,640 --> 00:08:07,350
‫لا تم العثور على مقبض فيزيائي ، علامة تعجب.

99
00:08:07,350 --> 00:08:12,960
‫الآن لم أحصل على المحرر مفتوحًا ، لذلك سأقوم بتحويل التحكم B للبناء داخل كود Visual Studio

100
00:08:12,960 --> 00:08:17,820
‫، وأغلق الجهاز عندما يكون ناجحًا وأعد تشغيله من المشروع الجديد.

101
00:08:17,820 --> 00:08:25,440
‫بمجرد إطلاقه ، دعنا نمضي قدمًا ونضغط على تشغيل ، وافتح سجل الإخراج وسنرى رسالة السجل.

102
00:08:25,440 --> 00:08:28,440
‫حصلت على معالجة الفيزياء ما هو الاسم.

103
00:08:28,440 --> 00:08:29,790
‫ما يكفي من المرح ، التعامل مع الفيزياء.

104
00:08:29,970 --> 00:08:39,510
‫الآن ماذا لو انتقلنا إلى مشغل الصفير الخاص بنا وقمنا بالفعل بإزالة هذا المقبض الفيزيائي والمضي

105
00:08:39,510 --> 00:08:41,160
‫قدمًا واللعب.

106
00:08:41,160 --> 00:08:48,000
‫ألقِ نظرة الآن على سجل الإخراج الخاص بنا وسيذهبون ، لدينا تحذير أصفر بأنه لم يتم العثور على أي مقبض

107
00:08:48,000 --> 00:08:48,840
‫فيزيائي.

108
00:08:48,840 --> 00:08:50,040
‫لذلك دعونا نتوقف عن اللعب.

109
00:08:50,070 --> 00:08:55,860
‫دعنا نمضي قدمًا ونضيف مقبض الفيزياء للخلف لأننا نريده وسننقذ اللاعب.

110
00:08:55,860 --> 00:08:57,090
‫صفير الاشياء العظيمة.

111
00:08:57,090 --> 00:09:03,570
‫لذلك اكتشفنا كيف يمكننا الحصول على مكونات أخرى من داخل مكون وتعلمنا كيفية

112
00:09:03,570 --> 00:09:08,820
‫التعامل مع المؤشرات الصفرية ولماذا نحتاج إلى توخي الحذر.

113
00:09:08,850 --> 00:09:10,500
‫سأراك في المحاضرة القادمة.

