﻿1
00:00:04,020 --> 00:00:04,980
‫أهلا ومرحبا.

2
00:00:04,980 --> 00:00:11,100
‫في هذه المحاضرة ، سنقوم بعمل ذلك بحيث عندما تستخدم كل المقذوفات الخاصة بك ، ستعيد

3
00:00:11,100 --> 00:00:14,010
‫لعبتك تلقائيًا المستوى الحالي.

4
00:00:14,010 --> 00:00:18,810
‫بعد توقف لمدة 5 ثوانٍ ، دعنا نتعمق ونرى كيف يتم ذلك.

5
00:00:19,080 --> 00:00:24,660
‫لذا فإن أحد عناصر هذه اللعبة غير الممتعة بشكل خاص في الوقت الحالي هو أنه عندما تنفد ذخيرتك ، فإن ذلك يمثل

6
00:00:24,660 --> 00:00:25,650
‫طريقًا مسدودًا.

7
00:00:25,650 --> 00:00:26,910
‫لا يمكنك المحاولة مرة أخرى.

8
00:00:26,910 --> 00:00:27,930
‫لا يمكنك فعل أي شيء آخر.

9
00:00:27,930 --> 00:00:29,820
‫لا يمكنك الانتقال إلى مستوى آخر.

10
00:00:30,150 --> 00:00:38,160
‫الآن ، الطريقة التي يمكنك بها إصلاح هذا هي السماح لنا بإعادة تحميل المستوى الحالي.

11
00:00:38,880 --> 00:00:42,750
‫الطريقة التي يمكنك القيام بذلك هي استخدام عقدة خاصة في المخطط.

12
00:00:42,750 --> 00:00:47,430
‫لذلك إذا نقرت بزر الماوس الأيمن على الرسم البياني للحدث ، فتفتح مخطط المستوى الخاص بك وانقر بزر الماوس الأيمن في الرسم البياني

13
00:00:47,430 --> 00:00:47,850
‫للحدث.

14
00:00:48,180 --> 00:00:50,580
‫يمكننا البحث عن المستوى المفتوح.

15
00:00:50,580 --> 00:00:51,720
‫وهناك خياران هنا.

16
00:00:51,720 --> 00:00:55,650
‫هناك مستوى مفتوح بالاسم ومستوى مفتوح حسب مرجع الكائن.

17
00:00:55,800 --> 00:00:59,520
‫يمكننا استخدام المستوى المفتوح بالاسم.

18
00:00:59,520 --> 00:01:06,510
‫إذاً هنا لديك عقدة من الواضح أنها لها آثار جانبية لأنها ستعيد تحميل المستوى ولديها

19
00:01:06,510 --> 00:01:09,150
‫مُدخل ، وهو اسم المستوى هنا.

20
00:01:09,600 --> 00:01:12,000
‫الآن كيف نحصل على اسم المستوى الحالي؟

21
00:01:12,000 --> 00:01:19,050
‫يمكننا فقط كتابته ، ولكن ماذا لو قمنا بإعادة تسمية هذا المستوى عن طريق الخطأ في وقت ما في المستقبل؟

22
00:01:19,350 --> 00:01:28,710
‫حسنًا ، ما يمكننا القيام به هو أيضًا النقر بزر الماوس الأيمن والحصول على اسم المستوى الحالي ، والذي يمنحنا عقدة أخرى

23
00:01:28,710 --> 00:01:30,930
‫تُرجع اسم المستوى الحالي.

24
00:01:30,930 --> 00:01:33,990
‫ومن المثير للاهتمام أن هذه ليست وظيفة خالصة.

25
00:01:33,990 --> 00:01:35,070
‫ليس لدي أي فكرة عن السبب.

26
00:01:35,130 --> 00:01:36,840
‫لأنه يبدو أنه يجب أن يكون.

27
00:01:36,930 --> 00:01:42,150
‫وما يمكننا فعله هو أنه على الرغم من اختلاف هذين النوعين ، فإن أحدهما يعرض سلسلة

28
00:01:42,150 --> 00:01:44,400
‫والآخر يتطلب شيئًا من اسم النوع.

29
00:01:44,400 --> 00:01:51,120
‫من الممكن في الواقع التحويل بسهولة بين السلاسل والأسماء حتى نتمكن من السحب من قيمة

30
00:01:51,120 --> 00:01:56,430
‫الإرجاع إلى قيمة الإدخال ، وسيتم تلقائيًا إنشاء عقدة تحويل لنا.

31
00:01:56,430 --> 00:02:01,350
‫نحتاج أيضًا إلى ربط دبوس التنفيذ بين هذين ، لذلك سنقوم بتحويل

32
00:02:01,350 --> 00:02:04,380
‫اسم المستوى الحالي ثم نفتح المستوى.

33
00:02:04,800 --> 00:02:06,870
‫الآن متى نريد أن نفعل هذا؟

34
00:02:06,870 --> 00:02:12,900
‫يحدث كل شيء حاليًا إما في حدث رئيسي أو بدء اللعب ، ولكن هناك خيار آخر.

35
00:02:12,900 --> 00:02:20,640
‫ما يمكننا القيام به هو أنه يمكننا الحصول على عقدة خاصة في الرسم البياني لحدث الجذر ، لذلك ليس ضمن الوظائف ولكن ضمن الرسم البياني

36
00:02:20,640 --> 00:02:23,010
‫لحدث الجذر يسمى عقدة التأخير.

37
00:02:23,010 --> 00:02:29,220
‫إذن ما سنفعله هو بعد الضغط على إخراج الذخيرة ، سنقوم بسحب دبوس التنفيذ

38
00:02:29,220 --> 00:02:31,560
‫هنا والبحث عن التأخير.

39
00:02:32,220 --> 00:02:37,080
‫وبعد ذلك يمكنك أن ترى أنها تجلب نوعًا خاصًا من العقدة مع ساعة عليها.

40
00:02:37,080 --> 00:02:45,480
‫وهذا يعني أن الإخراج لا يحدث فورًا بعد انتهاء الوظيفة ، ولكنه يحدث بعد فترة

41
00:02:45,480 --> 00:02:47,040
‫زمنية معينة.

42
00:02:47,040 --> 00:02:53,490
‫يمكنك أن ترى أنه يمكننا إدخال المدة هنا ، وقد تكون تلك المدة 5 ثوانٍ ، على سبيل المثال.

43
00:02:53,490 --> 00:03:04,020
‫لذلك في سلسلة الطباعة الخاصة بي ، سأقوم بتحديثها لأقول من إعادة تشغيل الذخيرة في 5 ثوانٍ ثم نقطة ، نقطة ،

44
00:03:04,020 --> 00:03:04,710
‫نقطة.

45
00:03:05,100 --> 00:03:15,300
‫وبعد ذلك يمكننا توصيل الكود الذي يعيد تشغيل المستوى في المخرجات ، العقدة المكتملة لعقدة

46
00:03:15,300 --> 00:03:16,650
‫التأخير.

47
00:03:16,740 --> 00:03:24,390
‫لذا ، إذا مضينا قدمًا ولعبنا الآن ، فإن ما سنراه هو أنه يمكنني نفاد ذخيرتي ، وإنهاء كل

48
00:03:24,390 --> 00:03:31,530
‫ذخيرتي ، ونفدت ، وتقول إنني سأعيد التشغيل في 5 ثوانٍ وبعد انقضاء 5 ثوانٍ ، بوم ، المستوى

49
00:03:31,530 --> 00:03:33,540
‫قد أعيد للتو.

50
00:03:33,540 --> 00:03:40,950
‫التحدي الصغير لهذه المحاضرة هو استخراج وظيفة من تلك العقد التي أنشأناها للتو ، الحصول على المستوى

51
00:03:40,950 --> 00:03:43,830
‫الحالي والاسم والمستوى المفتوح.

52
00:03:43,830 --> 00:03:48,810
‫والتحدي الذي أواجهه هو مجرد التفكير في اسم جيد لهذه الوظيفة.

53
00:03:48,810 --> 00:03:50,430
‫أوقف الفيديو واذهب.

54
00:03:53,740 --> 00:03:54,050
‫تمام.

55
00:03:54,060 --> 00:03:54,660
‫مرحبًا بعودتك.

56
00:03:54,660 --> 00:03:59,370
‫حسنًا ، سأسميها مستوى إعادة التشغيل لأن هذا ما أعتقد أنه يفعله.

57
00:03:59,370 --> 00:04:08,460
‫لذلك سأقوم بالنقر بزر الماوس الأيمن فوق "طي" للعمل وأطلق عليه "مستوى إعادة التشغيل" وهو جيد مع المدخلات الحالية.

58
00:04:08,460 --> 00:04:12,690
‫ليس من الضروري أن يكون نقيًا لأن له تأثيرًا جانبيًا لإعادة تشغيل المستوى.

59
00:04:12,690 --> 00:04:14,970
‫لذلك لا نريده أن يكون نقيًا على أي حال.

60
00:04:14,970 --> 00:04:15,690
‫هذا كل شيء.

61
00:04:15,690 --> 00:04:22,170
‫سأقوم فقط بإعادة تنظيم العقد الخاصة بي بشكل طفيف وحذف عقدة الاختبار الخاصة بي وحذف وظيفة الاختبار الخاصة بي عن طريق النقر بزر الماوس

62
00:04:22,170 --> 00:04:25,170
‫الأيمن عليها في المخططات الخاصة بي والضغط على الحذف.

63
00:04:25,470 --> 00:04:33,240
‫ولدينا لأنفسنا رسم بياني صغير مكثف يصف في الواقع بالضبط ما يمكن أن تفعله

64
00:04:33,240 --> 00:04:36,420
‫لعبتنا على مستوى عالٍ جدًا.

65
00:04:36,420 --> 00:04:37,830
‫لذلك أنا سعيد بنتائج ذلك.

66
00:04:37,830 --> 00:04:41,640
‫أشعر أن لدينا حلقة لعب جيدة وسأراكم في المحاضرة التالية.

