﻿1
00:00:04,340 --> 00:00:05,240
‫أهلا ومرحبا.

2
00:00:05,240 --> 00:00:12,830
‫في هذه المحاضرة ، سنقوم بإعادة هيكلة الكود الخاص بنا لجعل وظيفة الإمساك أصغر وأكثر قابلية للقراءة.

3
00:00:12,830 --> 00:00:15,290
‫وسنستخدم المعلمات مرة أخرى.

4
00:00:15,290 --> 00:00:18,860
‫هذه المرة ، سننشئ وظيفة تأخذها كمعامل.

5
00:00:18,860 --> 00:00:21,380
‫دعنا نتعمق ونرى كيفية القيام بذلك.

6
00:00:22,130 --> 00:00:29,090
‫لذلك ، من الأفضل عمومًا للوظائف محاولة احتوائها على شاشة واحدة.

7
00:00:29,090 --> 00:00:34,070
‫الآن ، في حالتي ، شاشتي كبيرة جدًا ، لكننا ما زلنا نتعلم ، لذلك من المنطقي

8
00:00:34,070 --> 00:00:37,490
‫أن يكون لدينا وظائف أصغر لجعل الأشياء مفهومة.

9
00:00:38,030 --> 00:00:45,740
‫وأعتقد أن وظيفة الإمساك هذه طويلة جدًا ، لذا أعتقد أنه يمكننا تقسيمها إلى وحدتين وظيفيتين إلى حد

10
00:00:45,740 --> 00:00:46,070
‫ما.

11
00:00:46,070 --> 00:00:52,250
‫الأول سيكون هو الجزء الذي يقوم بالمسح ويقوم بكل العمليات الحسابية لمتجهات البداية والنهاية

12
00:00:52,250 --> 00:00:59,480
‫ويخرج نتيجة النتيجة وما إذا كنا قد ضربنا أم لا ، القيمة المنطقية التي تشير إلى ما إذا كنا قد وصلنا.

13
00:00:59,480 --> 00:01:05,900
‫ومن ثم فإن البتة الثانية موجودة داخل عبارة if والتي من المحتمل أن نتركها كمهمة للإمساك لأن

14
00:01:05,900 --> 00:01:08,930
‫هذا في الواقع يتعلق بالإمساك ، أليس كذلك؟

15
00:01:08,930 --> 00:01:10,790
‫علينا أن نوقظ الجسد الجامد.

16
00:01:10,790 --> 00:01:16,430
‫يجب أن نحصل على مكون يكون منطقيًا في طريقة تسمى دالة تسمى grab.

17
00:01:16,430 --> 00:01:20,210
‫لكن هذه الأشياء الأخرى أكثر مماسة قليلاً.

18
00:01:20,210 --> 00:01:23,720
‫إنها أكثر من فائدة نحتاج إلى سحبها.

19
00:01:23,720 --> 00:01:28,580
‫لذلك أود أن أتحداك لإنشاء هذه الأداة ، وجعلها في متناول اليد.

20
00:01:28,580 --> 00:01:29,870
‫هذا ما أعتقد أنه ينبغي تسميته.

21
00:01:29,870 --> 00:01:33,290
‫أعتقد أن هذا يصف ما تفعله مجموعة التعليمات البرمجية هذه.

22
00:01:33,290 --> 00:01:37,220
‫لذا قم باستخراج كل كود المسح هذا في وظيفة خاصة جديدة.

23
00:01:37,220 --> 00:01:41,600
‫فكر في ما يجب أن تكون عليه معلماته وقيم العودة الخاصة به.

24
00:01:41,600 --> 00:01:43,670
‫تذكر أن لديك ناتجين.

25
00:01:43,670 --> 00:01:46,760
‫لذلك لدينا نتيجة ضرب وضرب.

26
00:01:46,760 --> 00:01:51,890
‫لذلك عليك التفكير في محاولة استخدام معلمة خارجية لإنجاح هذا الأمر.

27
00:01:52,040 --> 00:01:57,710
‫الآن ، إذا كنت تريد القليل من التلميح ، فسأوضح لك ما سأضعه في ملف الرأس في غضون

28
00:01:57,710 --> 00:01:58,970
‫ثانية فقط.

29
00:01:58,970 --> 00:02:01,520
‫إذا لم تقم بذلك ، يمكنك الذهاب وإيقاف مقطع فيديو مؤقتًا الآن.

30
00:02:01,820 --> 00:02:04,340
‫خلاف ذلك ، سأعطيكم التلميح.

31
00:02:04,730 --> 00:02:12,740
‫لذلك سنذهب إلى الاستيلاء على H وتحت المكان الذي حصلنا فيه على مقبض فيزيائي ، سيكون لدينا نوع عودة

32
00:02:12,740 --> 00:02:18,860
‫منطقي لإخبارنا ما إذا كان هناك شيء ما يمكننا الحصول على شيء ، أو الاستيلاء

33
00:02:18,910 --> 00:02:23,180
‫على الكرة ، دعنا نحصل على الكرة في متناول اليد.

34
00:02:23,180 --> 00:02:27,650
‫ثم نحتاج إلى إعطائها معلمة ستكون معلمة خارج.

35
00:02:27,650 --> 00:02:34,040
‫لذلك سيكون مرجعًا غير ثابت لنتيجة ضرب F.

36
00:02:34,040 --> 00:02:35,630
‫ضع إشارة.

37
00:02:36,590 --> 00:02:41,450
‫Ampersand ومن ثم سنسميها نتيجة ضرب alt هكذا.

38
00:02:41,450 --> 00:02:49,340
‫وبعد ذلك أعتقد أن هذا لن يغير أي شيء في وظيفتنا حتى نتمكن من جعلها مكلفة أيضًا.

39
00:02:49,340 --> 00:02:52,280
‫إنها نقاط مكافأة صغيرة إذا كنت قد فكرت بالفعل في ذلك.

40
00:02:52,490 --> 00:02:57,860
‫فهيا ، قم بإيقاف الفيديو مؤقتًا وحاول ملء هذه الوظيفة في ملف C ++.

41
00:03:01,090 --> 00:03:01,420
‫تمام.

42
00:03:01,420 --> 00:03:02,190
‫مرحبًا بعودتك.

43
00:03:02,200 --> 00:03:03,010
‫لذا سأقوم بنسخه.

44
00:03:03,010 --> 00:03:04,960
‫انتقل إلى C ++.

45
00:03:04,960 --> 00:03:10,840
‫سأضعه أسفل مكون Get Physics Handle الخاص بنا لمطابقة الترتيب الذي حصلنا عليه في

46
00:03:10,840 --> 00:03:11,800
‫ملف الرأس.

47
00:03:11,980 --> 00:03:16,930
‫سأقوم بإضافة U grabber في المقدمة.

48
00:03:17,110 --> 00:03:18,520
‫سأقوم بتثبيته بشكل صحيح.

49
00:03:18,520 --> 00:03:25,330
‫سأضيف الأقواس بدلاً من الفاصلة المنقوطة ثم سأقوم بتحريك الكود الذي

50
00:03:25,330 --> 00:03:26,890
‫حصلنا عليه.

51
00:03:26,890 --> 00:03:34,930
‫لذا بدءًا من السطر 53 بالنسبة لي وصولًا إلى 65 ، سأقطع كل ذلك وسنستبدله بشيء في

52
00:03:34,930 --> 00:03:36,220
‫ثانية فقط.

53
00:03:36,370 --> 00:03:44,710
‫سأقوم بلصقها للحصول على كرة في متناول اليد وحصلنا على نتيجة الضربة التي أنشأناها.

54
00:03:44,710 --> 00:03:53,530
‫ما يمكننا فعله هو أن نحدد نتيجة الضرب تلك التي تساوي نتيجة الضربة التي حصلنا عليها هنا.

55
00:03:53,620 --> 00:03:56,740
‫قد نرغب فقط في القيام بذلك إذا ضربنا.

56
00:03:56,740 --> 00:04:05,440
‫لذلك يمكننا أن نضع ذلك إذا كانت العبارة قد ضربت مثل ذلك ونلتف هذه المهمة ، فإن الخروج إلى نتيجة النتيجة

57
00:04:05,530 --> 00:04:11,500
‫داخل جملة if ثم يمكننا المضي قدمًا وفي نهاية الدالة ، تم ضرب الإرجاع

58
00:04:11,500 --> 00:04:18,280
‫مثل ذلك الآن هناك التحسين أو التحسين الذي يمكن إجراؤه هنا لأننا نمرر بالرجوع

59
00:04:18,280 --> 00:04:23,260
‫إلى قناة الاجتياح وفي إمساك الكرة في متناول اليد.

60
00:04:23,260 --> 00:04:28,960
‫لا نحتاج في الواقع إلى إنشاء نتيجة نتيجة جديدة هنا ثم نسخها إلى نتيجة النتيجة.

61
00:04:28,960 --> 00:04:30,250
‫هذا مجرد إهدار للذاكرة.

62
00:04:30,820 --> 00:04:36,490
‫ما يمكننا القيام به هو أنه يمكننا إزالة نتيجة الضربة التي نقوم بإنشائها في الداخل ، والحصول

63
00:04:36,490 --> 00:04:44,980
‫على الكرة في متناول اليد وبدلاً من ذلك يمكننا فقط استخدام المرجع الذي مررناه للتمرير مباشرة إلى المسح الفردي بقناة.

64
00:04:44,980 --> 00:04:50,440
‫لذلك ، يتم تمرير هذا المرجع إلى الوظائف لأسفل في المسح الفردي للقناة حيث

65
00:04:50,440 --> 00:04:55,840
‫سيتم ملؤها وهذا يلغي الحاجة إلى جملة if مما يجعل هذه الوظيفة أسرع قليلاً

66
00:04:55,840 --> 00:04:57,880
‫وأسهل في القراءة.

67
00:04:57,880 --> 00:05:01,510
‫وفي الحقيقة ، لا أعتقد أننا نحتاج حتى إلى متغير لتخزينه.

68
00:05:01,510 --> 00:05:03,790
‫يمكننا فقط المضي قدما والعودة.

69
00:05:03,790 --> 00:05:09,730
‫سيكون أكثر نظافة لإرجاع نتائج قناة اكتساح العالم.

70
00:05:09,730 --> 00:05:16,090
‫لذلك نحن نوعًا ما نمرر النتائج من ذلك من خلال النسخ الاحتياطي حتى نتمكن من الوصول إليها أو

71
00:05:16,090 --> 00:05:17,050
‫من يتصل بها.

72
00:05:17,050 --> 00:05:21,970
‫لذا بالحديث عن من يسميها ، نحن الآن بحاجة إلى الصعود إلى قبضتنا.

73
00:05:21,970 --> 00:05:24,670
‫نحن بحاجة إلى إنشاء نتائجنا في مكان ما.

74
00:05:24,670 --> 00:05:25,690
‫علينا أن ننشئه هنا.

75
00:05:25,690 --> 00:05:28,150
‫نتيجة الضرب ، هذه هي النتيجة التي سنقوم بتجميعها.

76
00:05:28,330 --> 00:05:35,320
‫سنقوم بعد ذلك بإنشاء متغير منطقي سيكون له نوع من المجموعة التي تساوي

77
00:05:35,350 --> 00:05:38,320
‫لتتمكن من الوصول إليها.

78
00:05:38,320 --> 00:05:43,240
‫وسنقوم بتمرير نتيجة النتيجة بالإشارة التي نريد ملؤها.

79
00:05:43,240 --> 00:05:49,270
‫ثم إذا وصلنا ، فسنمضي قدمًا وننفذ كود الاستيلاء.

80
00:05:49,270 --> 00:05:50,320
‫أشياء رائعة.

81
00:05:50,320 --> 00:05:56,590
‫لقد نقلنا شيئًا ما إلى وظيفة لجعل وظيفة الإمساك هذه مناسبة لشاشة واحدة.

82
00:05:56,590 --> 00:06:04,120
‫واستفدنا مرة أخرى من المعلمات الخارجية ، هذه المرة أنشأنا وظيفة لأنفسنا نستخدمها

83
00:06:04,120 --> 00:06:05,200
‫بجدية.

84
00:06:05,200 --> 00:06:07,270
‫سأراك في الفيديو التالي.

