﻿1
00:00:04,120 --> 00:00:04,630
‫ตกลง.

2
00:00:04,630 --> 00:00:08,980
‫ดังนั้นเป้าหมายของเราสำหรับวิดีโอนี้คือการทำให้ Pons เสียชีวิต

3
00:00:08,980 --> 00:00:17,770
‫ดังนั้นถ้าฉันโดนโจมตีสองครั้งจากหอคอยของเรา คุณจะเห็นว่าฉันหายไปเพราะรถถังของฉันตาย

4
00:00:17,770 --> 00:00:24,220
‫และถ้าฉันเก่งพอ ถ้าฉันสามารถทำลายหนึ่งในนั้นได้ คุณจะเห็นว่ามันหายไปเช่นกัน

5
00:00:24,220 --> 00:00:29,200
‫เราจะนำความตายมาใช้กับเบี้ยเหล่านี้ในวิดีโอนี้

6
00:00:29,290 --> 00:00:31,240
‫สวัสดีและยินดีต้อนรับกลับ

7
00:00:31,270 --> 00:00:36,790
‫ตอนนี้ เรากำลังสร้างความเสียหายให้กับเบี้ยเมื่อโดนกระสุนปืน

8
00:00:36,790 --> 00:00:40,600
‫ตอนนี้เราต้องคิดให้ออกว่าเราจะรับมืออย่างไรหลังความตาย

9
00:00:40,600 --> 00:00:45,910
‫ซึ่งหมายความว่าเราต้องการฟังก์ชันบางอย่างเพื่อจัดการกับการทำลายนักแสดงคนใดคนหนึ่ง

10
00:00:45,910 --> 00:00:49,030
‫เราจะสร้างฟังก์ชันจัดการทำลายล้าง

11
00:00:49,030 --> 00:00:55,510
‫นอกจากนี้เรายังต้องการนักแสดงที่ตายเพื่อทำหน้าที่ ซึ่งสามารถอนุญาตให้โหมดเกมจัดการกับสิ่งที่เกิดขึ้นเมื่อนักแสดงในโลกของเราเสียชีวิต

12
00:00:55,510 --> 00:01:03,340
‫และเราจะเรียกนักแสดงคนนี้ว่าฟังก์ชั่นที่เสียชีวิตเมื่อค่าสุขภาพถึงศูนย์สำหรับจำนำตัวใดตัวหนึ่ง

13
00:01:03,340 --> 00:01:07,630
‫เรามาพูดถึงแผนงานกันสักหน่อยว่าเราจะใช้ระบบนี้อย่างไร

14
00:01:07,630 --> 00:01:18,610
‫เรารู้ว่าเรามีโพรเจกไทล์และมันเรียกสร้างความเสียหาย ซึ่งส่งผลให้ฟังก์ชันรับความเสียหายตอบสนองต่อการออกอากาศของผู้รับมอบสิทธิ์นั้นในองค์ประกอบสุขภาพ

15
00:01:18,610 --> 00:01:21,100
‫ดังนั้นเราต้องคิดออกว่าจะทำอย่างไรจากที่นั่น

16
00:01:21,100 --> 00:01:26,230
‫โหมดเกมของเราสามารถมีหน้าที่จัดการเมื่อนักแสดงเสียชีวิต

17
00:01:26,230 --> 00:01:30,370
‫ดังนั้นในความเสียหายที่ได้รับ เราสามารถตรวจดูว่าพลังชีวิตเหลือศูนย์หรือไม่

18
00:01:30,370 --> 00:01:38,440
‫และเมื่อถึงจุดนั้นเราสามารถเรียกนักแสดงที่เสียชีวิตในโหมดเกมและจากที่นั่นโรงรับจำนำของเราสามารถจัดการกับการทำลายล้างได้

19
00:01:38,440 --> 00:01:45,010
‫ดังนั้นในที่สุด มันจะขึ้นอยู่กับโหมดเกมที่จะเรียกใช้ฟังก์ชันการจัดการทำลายล้างของนักแสดงที่เสียชีวิต

20
00:01:45,010 --> 00:01:49,660
‫ดังนั้นเราจึงมีแผนเกมเล็กน้อย ดังนั้นเรามาสรุปขั้นตอนในการดำเนินการนี้กัน

21
00:01:49,660 --> 00:01:58,900
‫อันดับแรก เราจะสร้างฟังก์ชันการทำลายที่จับ และเราจะวางสิ่งนี้ลงในคลาสเบี้ยพื้นฐานเพื่อจัดการกับฟังก์ชันการทำงานที่ควรจะเกิดขึ้นเมื่อเบี้ยตัวใดตัวหนึ่งของเราตาย

22
00:01:58,900 --> 00:02:04,090
‫และเราจะปรับใช้สิ่งนี้ในคลาสรถถังและหอคอย เนื่องจากพวกมันจะมีฟังก์ชั่นเฉพาะของตัวเองเมื่อพวกมันตาย

23
00:02:04,090 --> 00:02:09,520
‫จากนั้นเราจะสร้างฟังก์ชั่นนักแสดงที่ตายและวางไว้ในคลาสโหมดเกมเพื่อให้เราสามารถ

24
00:02:09,520 --> 00:02:13,090
‫โทรจัดการทำลายจากที่นั่น

25
00:02:13,090 --> 00:02:23,320
‫หลังจากนั้นเราจะเรียกการจัดการการทำลายล้างในโหมดนักแสดงตายในโหมดเกมและจากนั้นเราสามารถเรียกนักแสดงที่เสียชีวิตจากองค์ประกอบสุขภาพเมื่อสุขภาพถึงศูนย์

26
00:02:23,320 --> 00:02:27,640
‫เริ่มจากขั้นตอนแรกของเราในการสร้างฟังก์ชันการทำลายที่จับ

27
00:02:27,640 --> 00:02:33,430
‫ดังนั้นฉันจึงมาที่ Base Pond H และฉันต้องการเพิ่มฟังก์ชันการทำลายที่จับนี้

28
00:02:33,430 --> 00:02:38,740
‫ตอนนี้ฉันกำลังวางแผนที่จะเรียกสิ่งนี้จากโหมดเกม ซึ่งหมายความว่าจะต้องเป็นฟังก์ชันสาธารณะ

29
00:02:38,740 --> 00:02:42,850
‫เพื่อให้ฉันสามารถวางฟังก์ชันนี้ในส่วนสาธารณะได้

30
00:02:42,940 --> 00:02:46,840
‫มันจะเป็นโมฆะและฉันจะเรียกมันว่าจัดการกับการทำลายล้าง

31
00:02:47,890 --> 00:02:50,710
‫ตอนนี้ ไม่จำเป็นต้องใช้พารามิเตอร์อินพุตใดๆ

32
00:02:50,860 --> 00:02:55,360
‫มันก็แค่จัดการกับการทำลายตัวจำนำนี้โดยเฉพาะ

33
00:02:55,360 --> 00:03:02,770
‫ลองใช้ฟังก์ชันนี้ในไฟล์ CP จำนำฐาน และฉันจะวางมันไว้ตรงนี้ใต้ตัวสร้าง

34
00:03:02,770 --> 00:03:10,180
‫ดังนั้นฉันจึงจัดการกับการทำลายล้าง และฉันจะวางชื่อคลาสตัวรับจำนำพื้นฐานไว้ข้างหน้าชื่อฟังก์ชันที่นี่

35
00:03:10,180 --> 00:03:15,640
‫ตอนนี้นี่จะเป็นสิ่งที่เกิดขึ้นเมื่อตัวเบี้ยตัวใดตัวหนึ่งที่ยึดตามตัวจำนำพื้นฐานตาย

36
00:03:15,640 --> 00:03:21,040
‫ผมจะวาง a ไว้ตรงนี้เพื่อบอกว่าเราจะทำอะไรในฟังก์ชันจัดการการทำลาย

37
00:03:21,040 --> 00:03:26,800
‫ฉันต้องการจัดการเอฟเฟกต์ภาพและเสียงทั้งหมดที่เกี่ยวข้องกับการจำนำที่กำลังจะตาย

38
00:03:26,800 --> 00:03:38,920
‫ฉันจะพูดถึงเอฟเฟกต์เสียงของ visual slash และเราจะปล่อยมันไว้อย่างนั้น และเราจะอย่าลืมปรับใช้สิ่งนี้เมื่อเราไปถึงส่วนเอฟเฟกต์และเสียงพิเศษของส่วนนี้ของหลักสูตร

39
00:03:38,920 --> 00:03:50,050
‫ตอนนี้เราได้จัดการการทำลายล้างที่นี่แล้ว แต่ฉันอยากจะใส่ฟังก์ชันการทำลายการจัดการทั้งในคลาสรถถังและหอคอยเพื่อจัดการกับสิ่งที่จะเกิดขึ้นเมื่อเบี้ยเหล่านั้นตาย

40
00:03:50,050 --> 00:03:54,670
‫และการดำเนินการทำลายล้างที่ง่ายที่สุดอาจจะใช้กับหอคอยของเรา

41
00:03:54,670 --> 00:04:00,760
‫ไปที่ Tower H แล้วเราจะเพิ่มฟังก์ชันสาธารณะที่เรียกว่า จัดการการทำลาย

42
00:04:00,760 --> 00:04:10,060
‫ฉันกำลังจะบอกว่า โมฆะจัดการกับการทำลาย และฉันจะใช้สิ่งนี้และหอคอย CP ภายใต้ฟังก์ชันติ๊ก

43
00:04:10,060 --> 00:04:18,130
‫นี่คือการจัดการการทำลายล้าง และฉันจะเติมชื่อฟังก์ชันด้วยหอคอยแบบนั้น

44
00:04:18,130 --> 00:04:24,280
‫ตอนนี้ในฟังก์ชันจัดการการทำลายสำหรับหอคอย ฉันต้องการเรียกรุ่นสุดยอด เพื่อจัดการกับการทำลายในฐานจำนำ

45
00:04:24,280 --> 00:04:29,800
‫และเราจะได้รับเอฟเฟกต์ภาพและเสียงเหล่านั้นเมื่อหอคอยตาย

46
00:04:29,800 --> 00:04:35,650
‫ดังนั้นฉันจะบอกว่าจัดการกับการทำลายล้างอย่างดีเยี่ยม เพื่อให้แน่ใจว่าสิ่งนั้นจะถูกเรียก

47
00:04:35,650 --> 00:04:39,040
‫และหลังจากนั้น ฉันจะทำลายหอคอย

48
00:04:39,040 --> 00:04:40,390
‫ตอนนี้เราได้เห็นวิธีการทำงานแล้ว

49
00:04:40,390 --> 00:04:45,820
‫เราเรียกฟังก์ชันการทำลายเท่านั้น และนั่นจะจัดการการทำลายหอคอย

50
00:04:45,820 --> 00:04:54,910
‫ดังนั้นฉันสามารถบันทึกสิ่งนี้และปิดจากหอคอยและไฟล์ CP และตอนนี้ฉันสามารถวางฟังก์ชั่นการทำลายการจัดการในประเภทรถถังได้

51
00:04:54,910 --> 00:05:02,620
‫ดังนั้นฉันจะไปที่แทงค์และประกาศฟังก์ชันสาธารณะที่นี่ภายใต้ฟังก์ชันติ๊กที่เรียกว่าจัดการการทำลาย

52
00:05:03,640 --> 00:05:13,360
‫และฉันจะไปที่ Tank CP และใช้สิ่งนี้ภายใต้ tic ที่นี่ อย่าลืมเติมชื่อฟังก์ชันด้วยชื่อฟังก์ชันนำหน้า

53
00:05:13,510 --> 00:05:17,950
‫ตอนนี้ เหมือนกับในคลาสหอคอย เราต้องการเรียกการทำลายล้างแบบสุดยอด

54
00:05:19,300 --> 00:05:22,120
‫และด้วยวิธีนี้เราจะได้เอฟเฟกต์ภาพและเสียงเหล่านั้น

55
00:05:22,150 --> 00:05:24,910
‫สำหรับรถถัง เราจะทำบางอย่างที่แตกต่างออกไปเล็กน้อย

56
00:05:24,940 --> 00:05:27,700
‫ฉันต้องการซ่อนรถถังมากกว่าทำลายมัน

57
00:05:27,700 --> 00:05:33,730
‫จากนั้นเราสามารถปิดการใช้งานฟังก์ชัน TIC เพื่อให้มันยังคงอยู่ในโลกและเราจะยังคงครอบครองมันอยู่

58
00:05:33,730 --> 00:05:35,740
‫ดังนั้นเราจึงยังคงได้รับมุมมองนั้นจากกล้อง

59
00:05:35,770 --> 00:05:38,610
‫เพียงแต่เราไม่สามารถมองเห็นหรือเคลื่อนไปรอบๆ ได้

60
00:05:38,620 --> 00:05:47,710
‫เพื่อซ่อนรถถัง เราสามารถเรียกใช้ฟังก์ชันที่เรียกว่า set actor ที่ซ่อนอยู่ในเกม และนี่จะเป็นบูลีน

61
00:05:47,710 --> 00:05:51,400
‫และถ้าเราผ่านเข้าไปจริง เราก็จะซ่อนรถถังได้อย่างมีประสิทธิภาพ

62
00:05:51,430 --> 00:05:55,420
‫ตอนนี้ฉันต้องการปิดการติ๊กและมีฟังก์ชันสำหรับสิ่งนั้นเช่นกัน

63
00:05:55,420 --> 00:05:58,810
‫เรียกว่าเปิดใช้งาน tic ของนักแสดง

64
00:05:59,770 --> 00:06:05,260
‫และสำหรับสิ่งนี้ ฉันจะบอกเป็นเท็จ ซึ่งจะปิดการใช้งานการฟ้องของรถถัง

65
00:06:05,260 --> 00:06:08,800
‫เพื่อดูแลฟังก์ชั่นการทำลายการจัดการของเรา

66
00:06:08,800 --> 00:06:11,590
‫ดังนั้นเราจึงมีฟังก์ชันการทำลายการจัดการของเรา

67
00:06:11,620 --> 00:06:16,020
‫ขั้นตอนต่อไปของเราคือการสร้างฟังก์ชั่นนักแสดงเสียชีวิตในโหมดเกม

68
00:06:16,030 --> 00:06:17,440
‫เรามาปรับใช้กัน

69
00:06:17,440 --> 00:06:25,870
‫ดังนั้นฉันจึงมาอยู่ในโหมดปรับแต่งรถถัง และที่นี่ฉันสามารถสร้างฟังก์ชั่นการตายของนักแสดงได้ ตอนนี้ฉันวางแผนที่จะเรียกนักแสดงที่เสียชีวิตจากคลาสองค์ประกอบด้านสุขภาพ

70
00:06:25,870 --> 00:06:32,200
‫ซึ่งหมายความว่าสิ่งนี้ต้องเป็นหน้าที่สาธารณะด้วย

71
00:06:32,440 --> 00:06:37,590
‫ดังนั้นฉันจะเพิ่มส่วนสาธารณะและสร้างฟังก์ชันนักแสดงตาย

72
00:06:37,600 --> 00:06:40,930
‫ตอนนี้จะถือเป็นโมฆะและฉันจะเรียกมันว่านักแสดงเสียชีวิต

73
00:06:41,170 --> 00:06:49,740
‫และนี่สามารถใช้ตัวชี้นักแสดงที่เรียกว่า Dead Actor และตอนนี้เราสามารถนำนักแสดงที่เสียชีวิตในโหมดเกมรถถังปรับแต่งได้

74
00:06:50,110 --> 00:07:00,220
‫CP ดังนั้นฉันจะวางไว้ที่นี่และนำหน้าชื่อด้วยโหมดเกมปรับแต่งรถถังและตอนนี้เรามีฟังก์ชั่นการตายของนักแสดง

75
00:07:00,220 --> 00:07:07,030
‫ตอนนี้ฉันต้องการตรวจสอบว่านักแสดงที่ตายคือรถถังหรือไม่ ซึ่งหมายความว่าฉันต้องการตัวแปรสำหรับรถถัง

76
00:07:07,030 --> 00:07:09,460
‫กลับมาในโหมดเกมรถถัง

77
00:07:09,460 --> 00:07:17,290
‫ฉันจะสร้างส่วนส่วนตัวและจะเพิ่มตัวแปรถังซึ่งฉันจะประกาศต่อไป

78
00:07:17,290 --> 00:07:23,290
‫และเป็นตัวชี้รถถังประเภท A และผมแค่จะเรียกรถถังนี้ และผมต้องเริ่มต้นสิ่งนี้ด้วยที่อยู่ของบ่อเลี้ยงปลา

79
00:07:23,290 --> 00:07:27,760
‫และผมสามารถทำได้และเริ่มเล่น

80
00:07:27,760 --> 00:07:33,640
‫ตอนนี้เราได้เห็นแล้วว่าการเริ่มเล่นเป็นฟังก์ชันที่มีการป้องกัน และเราจะรักษาไว้ในโหมดเกมเพื่อให้เราสามารถแทนที่

81
00:07:33,640 --> 00:07:36,400
‫เริ่ม เล่นได้

82
00:07:36,400 --> 00:07:44,580
‫ดังนั้นฉันจะบอกว่าเป็นโมฆะเสมือน เริ่ม เล่น แทนที่ และฉันสามารถใช้มันได้ที่นี่ในการปรับแต่งรถถัง โหมดเกม

83
00:07:44,860 --> 00:07:45,610
‫ใช่.

84
00:07:45,640 --> 00:07:52,840
‫ดังนั้นมันจะเป็นโมฆะเริ่มเล่นและฉันจะใช้รถถังปรับแต่งชื่อคลาสโหมดเกม

85
00:07:52,990 --> 00:07:56,110
‫และสิ่งแรกที่ฉันจะทำคือเรียก super start play

86
00:07:57,550 --> 00:08:03,040
‫ด้วยวิธีนี้เราจึงได้รับฟังก์ชันของผู้ปกครองและฉันสามารถรับผู้เล่นจำนำโดยใช้สถิตย์การเล่นเกม

87
00:08:03,040 --> 00:08:11,680
‫ดังนั้นก่อนอื่นฉันจะรวมสถิติการเล่นเกมและนั่นคือสถิติการเล่นเกม kismet slash ตามที่เราได้เห็นแล้ว

88
00:08:11,800 --> 00:08:17,290
‫และที่นี่ฉันสามารถนำ Tank และกำหนดค่าสถิตยภาพการเล่นเกมเยาวชนให้กับมันได้

89
00:08:18,230 --> 00:08:19,550
‫ฝ่ามือเล่นกีต้าร์.

90
00:08:20,360 --> 00:08:26,390
‫ทีนี้ มันใช้วัตถุบริบทโลกที่เราสามารถใช้สิ่งนี้ได้ และฉันจะใช้ศูนย์เป็นดัชนีผู้เล่น

91
00:08:26,390 --> 00:08:30,200
‫เนื่องจากรถถังของเราจะเป็นศูนย์ผู้เล่นเสมอ

92
00:08:30,200 --> 00:08:37,430
‫ตอนนี้เรารู้แล้วว่าผู้เล่นเจ็ท - ส่งคืนตัวชี้ A และรถถังเป็นรถถังประเภท A ซึ่งเป็นคลาสเด็ก

93
00:08:37,430 --> 00:08:43,910
‫และเราได้เห็นแล้วว่าเราต้องร่ายไปยังระดับรถถังนั้น หากเราต้องการเก็บผลลัพธ์นี้ไว้ในตัวชี้รถถัง

94
00:08:43,910 --> 00:08:44,510
‫A

95
00:08:44,510 --> 00:08:47,450
‫ก่อนอื่นฉันจะรวมส่วนหัวของถัง

96
00:08:47,450 --> 00:08:53,330
‫ฉันจะบอกว่ารวมถัง H แล้วฉันจะส่งไปที่รถถัง

97
00:08:53,390 --> 00:09:00,440
‫ฉันกำลังจะบอกว่าโยนไปที่รถถังและฉันกำลังใช้ค่าที่ส่งคืนจาก get player --

98
00:09:00,440 --> 00:09:02,900
‫ผมจะใส่มันในวงเล็บตรงนี้

99
00:09:03,260 --> 00:09:08,720
‫และตอนนี้เราจะมีตัวชี้ไปยังผู้เล่น ในรูปแบบของตัวชี้รถถัง A

100
00:09:08,720 --> 00:09:14,090
‫ตอนนี้เรามีแทงค์แล้ว เราสามารถเช็คได้ว่านักแสดงที่ตายไปแล้วคือแทงค์หรือเปล่า

101
00:09:14,090 --> 00:09:21,800
‫ดังนั้นเราสามารถพูดได้ว่าถ้านักแสดงตายสองเท่าเท่ากับรถถัง ตอนนี้รถถังอาจเป็นโมฆะ

102
00:09:21,800 --> 00:09:28,940
‫และไม่เป็นไรเพราะถ้า Tank เป็นโมฆะและนักแสดงที่ตายแล้วอ้างถึงตัวรถถังเอง สิ่งนี้จะล้มเหลวในการตรวจสอบ

103
00:09:28,940 --> 00:09:35,060
‫if และเราจะไม่พยายามเข้าถึงตัวชี้ค่าว่างเพราะเราจะไม่เข้าไปด้านในของสิ่งนี้

104
00:09:35,060 --> 00:09:41,900
‫ถ้าผู้ตายเป็นรถถังจริงๆ ผมอยากเรียกฟังก์ชันการทำลายที่จับถัง

105
00:09:41,900 --> 00:09:44,870
‫ดังนั้นเราจะเรียกการทำลายที่จับรถถัง

106
00:09:45,680 --> 00:09:52,100
‫ตอนนี้ หลังจากที่ฉันเรียกใช้ฟังก์ชันการทำลายที่จับ ฉันต้องการปิดใช้งานอินพุตสำหรับพ็อดถังด้วย

107
00:09:52,100 --> 00:09:58,550
‫เพื่อที่ฉันจะได้รถถังและเรียกใช้ฟังก์ชันในตัวที่รถถังสืบทอดมาซึ่งเรียกว่าการปิดใช้งานอินพุต

108
00:09:59,540 --> 00:10:03,200
‫ตอนนี้ปิดการใช้งานอินพุตต้องใช้ตัวควบคุมผู้เล่น A

109
00:10:03,200 --> 00:10:10,430
‫ตอนนี้เรารู้แล้วว่าคลาสรถถัง ถ้าเรามาที่นี่ในแทงค์ H มีตัวแปร ref ของคอนโทรลเลอร์ของผู้เล่น ซึ่งเป็นตัวชี้ไปยังคอนโทรลเลอร์ของผู้เล่น

110
00:10:10,430 --> 00:10:19,160
‫ซึ่งเป็นสาเหตุที่ฉันเริ่มคิดว่า ref เป็นชื่อที่แย่มากสำหรับตัวแปรนี้ .

111
00:10:19,160 --> 00:10:21,320
‫เนื่องจากไม่ใช่ข้อมูลอ้างอิง แต่เป็นตัวชี้

112
00:10:21,320 --> 00:10:24,260
‫ฉันเกือบจะเรียกมันว่าตัวควบคุมผู้เล่นรถถัง

113
00:10:24,350 --> 00:10:27,200
‫ที่จริงแล้วทำไมเราไม่ไปข้างหน้าและเปลี่ยนชื่อนี้?

114
00:10:27,200 --> 00:10:33,530
‫นี่คือสิ่งที่นักพัฒนามักจะทำเมื่อพวกเขารู้ว่าพวกเขาให้ตัวแปร ชื่อที่ไม่ดี

115
00:10:33,530 --> 00:10:36,290
‫ดังนั้นรหัสนี้มีวิธีการทำได้อย่างง่ายดาย

116
00:10:36,290 --> 00:10:42,350
‫ฉันสามารถเน้นตัวแปรนี้และกดปุ่ม F two และขอให้ฉันเปลี่ยนชื่อ

117
00:10:42,590 --> 00:10:45,710
‫ฉันจะเรียกผู้ควบคุมผู้เล่นรถถังนี้

118
00:10:46,100 --> 00:10:47,480
‫ตอนนี้ตรวจสอบออก

119
00:10:47,480 --> 00:10:49,790
‫เรียกว่า Tank Player Controller ที่นี่

120
00:10:49,790 --> 00:10:54,350
‫ถ้าฉันไปที่ Tank CP ฉันจะเห็นว่ามีการเปลี่ยนชื่อที่นี่เช่นกัน

121
00:10:54,350 --> 00:11:00,530
‫ดังนั้นฉันจึงไม่ต้องเข้าไปค้นหาและค้นหาทุก ๆ ตัวอย่างของผู้เล่น ผู้ควบคุม ผู้อ้างอิง

122
00:11:00,530 --> 00:11:06,050
‫ฉันสามารถค้นหาตัวควบคุมผู้เล่นรถถังและเห็นว่ามีการเปลี่ยนแปลงทุกที่ที่ใช้ที่นี่

123
00:11:06,050 --> 00:11:08,960
‫นั่นเป็นทักษะการปรับโครงสร้างใหม่ที่ดีที่จะมี

124
00:11:08,960 --> 00:11:17,180
‫อย่างไรก็ตาม กลับมาที่นี่ในโหมดปรับแต่งรถถัง ฉันต้องปิดการใช้งานอินพุตสำหรับรถถัง และสิ่งนี้ต้องใช้ตัวควบคุมของผู้เล่น

125
00:11:17,360 --> 00:11:25,550
‫ดังนั้นก่อนอื่นฉันจะตรวจสอบเพื่อให้แน่ใจว่าตัวควบคุมผู้เล่นรถถังนั้นถูกต้องโดยบอกว่ารถถังและฉันต้องการเข้าถึงตัวควบคุมผู้เล่นนั้นหรือไม่

126
00:11:25,550 --> 00:11:30,440
‫แต่จำไว้ว่าในแทงค์ ตัวแปรควบคุมผู้เล่นของเราเป็นแบบส่วนตัว

127
00:11:30,440 --> 00:11:36,860
‫ตอนนี้ เราสามารถเปิดเผยสิ่งนี้และทำให้เป็นสาธารณะ หรือเราอาจสร้างฟังก์ชัน getter สาธารณะสำหรับตัวแปรนี้

128
00:11:36,860 --> 00:11:40,340
‫ฉันอยากให้คนทั่วไปรู้จักเพราะมันเป็นวิธีที่ดีกว่าในการเขียนโปรแกรม

129
00:11:40,340 --> 00:11:46,610
‫ในส่วนสาธารณะ ฉันจะสร้างผู้รับสาธารณะสำหรับตัวควบคุมผู้เล่นรถถัง

130
00:11:46,610 --> 00:11:55,340
‫ตอนนี้มันจะส่งตัวชี้ตัวควบคุมผู้เล่น A และฟังก์ชั่นนี้จะถูกเรียกว่าผู้เล่นรถถัง

131
00:11:55,340 --> 00:12:02,900
‫Controller getters มักจะเป็นชื่อของตัวแปรที่มี get อยู่ด้านหน้า และโดยปกติแล้วจะมีค่าใช้จ่ายเนื่องจากฟังก์ชันนี้ไม่ได้ออกแบบมาเพื่อเปลี่ยนแปลงอะไรในคลาสนี้

132
00:12:02,900 --> 00:12:10,970
‫แต่จะส่งคืนคอนโทรลเลอร์ของผู้เล่นเท่านั้น

133
00:12:10,970 --> 00:12:16,760
‫ดังนั้นเราจะบอกว่าคืนตัวควบคุมผู้เล่นรถถังและนั่นคือทั้งหมดที่จะทำ

134
00:12:16,760 --> 00:12:25,640
‫ตอนนี้เรามีฟังก์ชั่น getter สาธารณะสำหรับคอนโทรลเลอร์ของผู้เล่นแทงค์แล้ว เราสามารถเข้าถึงคอนโทรลเลอร์ของผู้เล่นได้ที่นี่จากภายในโหมดเกม

135
00:12:25,880 --> 00:12:33,080
‫เราจะบอกว่าถ้าแทงค์ได้รับตัวควบคุมผู้เล่นแทงค์และเรียกฟังก์ชันนั้นที่นี่

136
00:12:33,080 --> 00:12:38,450
‫และถ้าเราไปถึงด้านในของคำสั่ง if ตัวควบคุมของผู้เล่นนั้นถูกต้อง ดังนั้นเราสามารถย้ายการเรียกนี้ไปที่อินพุตปิดการใช้งานแทงค์ที่นี่

137
00:12:38,450 --> 00:12:46,400
‫และเราจะส่งต่อไปยังอินพุตที่ปิดการใช้งานตัวควบคุมผู้เล่นแทงค์

138
00:12:48,400 --> 00:12:51,950
‫ดังนั้นเราจะเรียกแทงค์รับตัวควบคุมผู้เล่นที่นี่เช่นกัน

139
00:12:51,970 --> 00:12:57,910
‫ตอนนี้ ขณะที่เรากำลังเข้าถึงตัวควบคุมของผู้เล่น ฉันต้องการให้ตัวควบคุมของผู้เล่นแสดงเคอร์เซอร์เมาส์ของเมาส์

140
00:12:57,910 --> 00:13:03,640
‫ตัวแปรสมาชิกบูลีน และตั้งค่านี้เป็นเท็จ

141
00:13:03,640 --> 00:13:08,830
‫ดังนั้นเราจึงปิดการใช้งานอินพุต และทำให้แน่ใจว่าเคอร์เซอร์ของเมาส์ไม่แสดงขึ้น

142
00:13:08,830 --> 00:13:13,400
‫เพื่อดูแลจัดการฟังก์ชันการทำงานเมื่อถังตาย

143
00:13:13,420 --> 00:13:21,010
‫กรณีผู้ตายไม่ใช่รถถัง ผมจึงอยากเช็คว่าเป็นตัวอย่างของหอคอยชั้นหนึ่งหรือไม่

144
00:13:21,010 --> 00:13:23,200
‫ดังนั้นฉันจะเพิ่มอย่างอื่นถ้าที่นี่

145
00:13:23,320 --> 00:13:26,410
‫แล้วอะไรจะเป็นเงื่อนไขสำหรับ elseif นี่?

146
00:13:26,440 --> 00:13:35,800
‫ฉันต้องการดูว่านักแสดงที่ตายแล้วสามารถโยนไปที่หอคอย A ได้หรือไม่ซึ่งหมายความว่าฉันจะต้องรวมคลาสหอคอยด้วย

147
00:13:35,890 --> 00:13:37,300
‫รวมหอคอยด้วย

148
00:13:38,170 --> 00:13:40,270
‫แล้วผมจะลองแคสต์ดู

149
00:13:40,270 --> 00:13:44,770
‫ผมจะเรียกว่า cast ซึ่งใช้วงเล็บเหลี่ยมกับวงเล็บ

150
00:13:44,770 --> 00:13:50,410
‫และสิ่งที่เรากำลังหล่อก็คือหอคอย และสิ่งที่เรากำลังหล่อนั้นตายแล้ว

151
00:13:50,410 --> 00:13:53,410
‫นักแสดงจะพยายามคัดเลือกนักแสดงที่เสียชีวิต

152
00:13:53,410 --> 00:13:59,410
‫ตอนนี้เราสามารถเอาผลลัพธ์ของคาสต์นี้มากำหนดและสร้างตัวแปรโลคัลได้

153
00:13:59,410 --> 00:14:11,470
‫ในเงื่อนไขนี้เราสามารถพูดได้ว่าตัวชี้หอคอยและเราสามารถเรียกหอคอยที่ถูกทำลายนี้และกำหนดค่าที่ส่งคืนจากการร่ายนี้

154
00:14:11,470 --> 00:14:18,660
‫และถ้าเราทำอย่างนั้น เราก็สามารถเข้าถึงนักแสดงที่ถูกทำลายนี้ ซึ่งเป็นนักแสดงที่ตายไปแล้วของเราที่ถูกโยนไปที่หอคอย

155
00:14:18,670 --> 00:14:22,630
‫ทีนี้ ถ้าทำได้สำเร็จ เราก็จะไปที่ส่วนในของ elseif

156
00:14:22,630 --> 00:14:24,670
‫จากนั้นเราก็สามารถทำลายล้างได้

157
00:14:25,490 --> 00:14:31,430
‫ทาวเวอร์และเราสามารถเรียกการทำลายล้าง

158
00:14:32,870 --> 00:14:43,910
‫ดังนั้นตอนนี้เรามีฟังก์ชั่นการตายของนักแสดงในโหมดเกมซึ่งเรียกการจัดการการทำลายล้างและยังจัดการการทำงานที่เกี่ยวข้องกับการตายเพิ่มเติมสำหรับรถถัง

159
00:14:44,180 --> 00:14:45,980
‫เพื่อดูแลขั้นตอนที่สอง

160
00:14:45,980 --> 00:14:53,540
‫การสร้างนักแสดงเสียชีวิตและในขณะที่เราอยู่ที่นั่น เรายังเรียกว่าจัดการการทำลายในหน้าที่นักแสดงตาย

161
00:14:53,540 --> 00:14:58,150
‫ขั้นตอนสุดท้ายของเราคือเรียกนักแสดงเสียชีวิตเมื่อสุขภาพเป็นศูนย์

162
00:14:58,160 --> 00:15:07,250
‫เพื่อเรียกฟังก์ชันนี้ที่มีอยู่ในโหมดเกม ส่วนประกอบด้านสุขภาพของเราต้องการตัวแปรที่เก็บที่อยู่ของโหมดเกม

163
00:15:07,250 --> 00:15:10,340
‫ไปที่คลาสองค์ประกอบด้านสุขภาพของเรากัน

164
00:15:10,340 --> 00:15:16,100
‫นี่คือองค์ประกอบด้านสุขภาพ และฉันจะเพิ่มตัวแปรส่วนตัวที่ด้านล่างสุด

165
00:15:16,100 --> 00:15:25,730
‫และนี่จะเป็นตัวชี้โหมดเกมรถถังประเภท A และเราจะเรียกโหมดเกมรถถังปรับแต่งนี้

166
00:15:25,730 --> 00:15:32,480
‫ตอนนี้ฉันกำลังจะประกาศสิ่งนี้ต่อไป ดังนั้นฉันจึงไม่ต้องรวมไฟล์ส่วนหัวที่นี่ จากนั้นเราต้องเข้าถึงโหมดเกม

167
00:15:32,480 --> 00:15:41,690
‫ไปที่ CP ขององค์ประกอบด้านสุขภาพ และหากฉันเลื่อนขึ้น ฉันเห็นฟังก์ชันเริ่มเล่นที่นี่ และนั่นคือที่ที่เหมาะที่สุดที่จะยึดโหมดเกมไว้

168
00:15:41,690 --> 00:15:44,840
‫อีกครั้งการวางใน Constructor นั้นเร็วเกินไป

169
00:15:44,840 --> 00:15:50,530
‫เราจำเป็นต้องตรวจสอบให้แน่ใจว่าโหมดเกมนั้นถูกสร้างขึ้นและมีอยู่จริงก่อนที่เราจะเข้าถึงมันได้

170
00:15:50,540 --> 00:15:57,200
‫ต่อไปนี้คือฟังก์ชันที่มีประโยชน์สำหรับสถิติการเล่นเกมที่เรียกว่า Get Game Mode และแจ้งว่าคืนค่าฐานโหมดเกมปัจจุบันหรือเป็นค่าว่างหากไม่สามารถดึงข้อมูลได้

171
00:15:57,200 --> 00:16:01,610
‫เช่น บนไคลเอนต์

172
00:16:01,850 --> 00:16:07,730
‫ในตอนนี้ ไคลเอนต์ต้องดำเนินการกับการเขียนโปรแกรมแบบผู้เล่นหลายคน และเราไม่ต้องกังวลเกี่ยวกับเรื่องนั้น

173
00:16:07,730 --> 00:16:18,230
‫เรากำลังรันบนเครื่องเดียวสำหรับเกมของเรา เลื่อนลงมาและเราจะเห็นว่าฐานโหมดเกมใช้วัตถุบริบทโลก

174
00:16:18,230 --> 00:16:24,080
‫นี่เป็นเพียงวัตถุในโลก และเราได้เห็นวิธีจัดการกับวัตถุบริบทของโลกแล้ว

175
00:16:24,080 --> 00:16:29,030
‫ดังนั้นสิ่งนี้จึงมีอยู่ในการเล่นเกมแบบคงที่ h มารวมเข้าด้วยกัน

176
00:16:29,030 --> 00:16:37,490
‫และในองค์ประกอบด้านสุขภาพ CP จะวางส่วนรวมของเราสำหรับสถิติการเล่นเกม จากนั้นเราจะเรียกโหมดเกมที่นี่และเริ่มเล่น

177
00:16:37,790 --> 00:16:40,670
‫ดังนั้นเราจะพูดว่า ปรับแต่งรถถัง โหมดเกม

178
00:16:42,030 --> 00:16:44,380
‫และกำหนดสิ่งนั้นให้เป็นค่าของคุณ

179
00:16:44,400 --> 00:16:50,940
‫สถิติการเล่นเกมได้รับโหมดเกมและสำหรับวัตถุบริบทโลก

180
00:16:50,940 --> 00:16:54,750
‫ฉันจะผ่านในนี้และตอนนี้เรามีโหมดเกม

181
00:16:54,750 --> 00:17:01,080
‫แต่แน่นอนว่ามีโหมดเกม คืนฐานโหมดเกม และเรากำลังพยายามเก็บไว้ในคลาสเด็ก

182
00:17:01,080 --> 00:17:06,810
‫โหมดเกมรถถัง ซึ่งหมายความว่าเราจะต้องแคสต์

183
00:17:06,810 --> 00:17:07,380
‫ถูกตัอง.

184
00:17:07,380 --> 00:17:17,580
‫ดังนั้นเราจึงต้องบอกว่าใช้โหมดเกมปรับแต่งรถถัง และเรากำลังแคสต์ผลลัพธ์จากโหมดเกม

185
00:17:17,580 --> 00:17:20,430
‫ผมจะใส่มันในวงเล็บตรงนี้

186
00:17:20,430 --> 00:17:22,410
‫และเรากำลังใช้โหมดเกมปรับแต่งรถถัง

187
00:17:22,410 --> 00:17:24,840
‫ดังนั้นฉันจะรวมไฟล์ส่วนหัวนั้นไว้ด้านบน

188
00:17:24,840 --> 00:17:26,970
‫ดังนั้นฉันจะบอกว่ารวม

189
00:17:28,960 --> 00:17:32,120
‫ปรับแต่งโหมดเกมรถถัง

190
00:17:33,100 --> 00:17:36,960
‫ดังนั้นเราจึงมีโหมดเกมที่นี่ในองค์ประกอบด้านสุขภาพ

191
00:17:36,970 --> 00:17:44,080
‫เราพร้อมที่จะลงไปที่นี่ในความเสียหายที่ได้รับและตรวจสอบว่าสุขภาพของเราเป็นศูนย์หรือไม่

192
00:17:44,140 --> 00:17:52,060
‫และในกรณีนั้นเราสามารถใช้ตัวชี้โหมดเกมปรับแต่งรถถังของเราเพื่อเรียกฟังก์ชั่นนักแสดงที่เสียชีวิตผ่านนักแสดงที่เสียชีวิตและนี่จะเป็นความท้าทายของคุณ

193
00:17:52,060 --> 00:18:06,910
‫ดังนั้นในระดับองค์ประกอบสุขภาพในความเสียหายที่ได้รับคุณจะต้องตรวจสอบเพื่อดู หากค่าของสุขภาพถึงศูนย์หรือต่ำกว่าศูนย์

194
00:18:06,940 --> 00:18:11,260
‫หากเป็นกรณีนี้ให้โทรหานักแสดงที่เสียชีวิตโดยใช้โหมดเกม

195
00:18:11,260 --> 00:18:17,800
‫เนื่องจากเรามีพอยน์เตอร์ไปยังโหมดเกม อย่าลืมตรวจสอบดูว่าพอยน์เตอร์นี้ไม่เป็นโมฆะก่อนหรือไม่

196
00:18:17,800 --> 00:18:21,940
‫และเมื่อคุณเรียกนักแสดงว่าเสียชีวิตแล้ว คุณจะต้องผ่านการคัดเลือกนักแสดง

197
00:18:21,940 --> 00:18:25,000
‫คุณจะผ่านในนักแสดงที่เสียชีวิต

198
00:18:25,000 --> 00:18:30,370
‫ดังนั้นหยุดวิดีโอชั่วคราวและใช้สิ่งนี้ในฟังก์ชั่นความเสียหายที่ได้รับทันที

199
00:18:33,280 --> 00:18:33,670
‫ตกลง.

200
00:18:33,670 --> 00:18:36,720
‫ดังนั้นเราจึงลบความเสียหายออกจากสุขภาพแล้ว

201
00:18:36,730 --> 00:18:41,220
‫ตอนนี้เราพร้อมที่จะตรวจสอบเพื่อดูว่าค่าสุขภาพนั้นถึงศูนย์หรือไม่

202
00:18:41,230 --> 00:18:49,450
‫ฉันจะบอกว่าถ้าสุขภาพน้อยกว่าหรือเท่ากับศูนย์ F และถ้าเป็นกรณีนี้ก็เหมาะสมที่จะโทร

203
00:18:49,480 --> 00:18:55,090
‫นักแสดงเสียชีวิตตอนนี้เพราะเราต้องตรวจสอบดูว่าโหมดเกมถูกต้องหรือไม่

204
00:18:55,090 --> 00:19:02,170
‫ฉันสามารถวางโฆษณาที่นี่ได้หากตรวจสอบและตรวจสอบว่าโหมดเกมปรับแต่งรถถังนั้นถูกต้องหรือไม่

205
00:19:02,170 --> 00:19:07,060
‫หากเป็นโมฆะ มันจะคืนค่าเท็จที่นี่ และเราจะไม่ไปถึงด้านในของคำสั่ง if

206
00:19:07,540 --> 00:19:14,050
‫ดังนั้นหากเราไปถึงด้านในของคำสั่ง if โหมดเกมปรับแต่งรถถังจะมีผลและพลังชีวิตถึงศูนย์

207
00:19:14,050 --> 00:19:16,780
‫ดังนั้นเราสามารถพูดได้ว่า ปรับแต่งรถถัง โหมดเกม

208
00:19:17,980 --> 00:19:19,900
‫และเรียกได้ว่านักแสดงเสียชีวิต

209
00:19:20,830 --> 00:19:27,160
‫และสิ่งนี้ต้องใช้นักแสดงและเรารู้ว่านักแสดงที่เสียชีวิตจะเป็นนักแสดงที่เสียหาย

210
00:19:27,160 --> 00:19:29,950
‫ดังนั้นเราจะส่งต่อนักแสดงที่เสียหาย

211
00:19:30,130 --> 00:19:33,640
‫และตอนนี้เราสามารถรวบรวมสิ่งนี้และดูสิ่งนั้นได้

212
00:19:33,640 --> 00:19:35,380
‫เรามีคอมไพล์ที่ประสบความสำเร็จ

213
00:19:35,380 --> 00:19:37,180
‫กลับไปที่บรรณาธิการกันเถอะ

214
00:19:37,180 --> 00:19:40,690
‫และในบทบรรณาธิการ ทำไมเราไม่ลองทดสอบความตายดูล่ะ?

215
00:19:40,690 --> 00:19:45,790
‫มาดูกันว่าฉันสามารถทำลายรถถังเหล่านี้ได้หรือไม่ก่อนที่จะถูกทำลายด้วยตัวเอง

216
00:19:45,790 --> 00:19:47,680
‫มันจะเป็นชนิดของความท้าทาย

217
00:19:47,710 --> 00:19:48,670
‫อ้อ มีอันหนึ่ง

218
00:19:48,670 --> 00:19:52,030
‫ฉันฆ่าหนึ่งในนั้นและฉันได้ตัวที่สอง

219
00:19:52,030 --> 00:19:53,230
‫โอ้และฉันก็ตาย

220
00:19:53,650 --> 00:20:01,840
‫คุณจะเห็นได้ว่าเกมนี้สนุกขึ้นมากในขณะนี้ เราได้เพิ่มความตายและการทำลายล้างลงในบ่อของเรา

221
00:20:01,840 --> 00:20:03,550
‫เท่านี้ก็เยี่ยมแล้ว

222
00:20:03,850 --> 00:20:11,050
‫โอเค สิ่งที่ฉันต้องการให้คุณทำคือตบหลังตัวเองอย่างแรง เพราะในวิดีโอนี้ เราจัดการ Actor

223
00:20:11,050 --> 00:20:18,010
‫Death ซึ่งเกี่ยวข้องกับปฏิสัมพันธ์เล็กน้อยระหว่างคลาสเหล่านี้ในเกมของเรา

224
00:20:18,100 --> 00:20:24,940
‫วิธีที่ความตายเกิดขึ้นก็คือ สระน้ำนั้นหายไป ซึ่งหมายความว่าเรายังต้องการบางสิ่งอยู่

225
00:20:25,030 --> 00:20:26,890
‫เราต้องการเงื่อนไขชนะแพ้

226
00:20:26,890 --> 00:20:30,490
‫เราต้องการวิธีแสดงให้ผู้เล่นเห็นว่าพวกเขาชนะหรือแพ้ในเกม

227
00:20:30,490 --> 00:20:33,220
‫และเราต้องการเอฟเฟกต์พิเศษเหล่านั้นด้วย

228
00:20:33,340 --> 00:20:36,430
‫เราต้องการเสียง เราต้องการระเบิด

229
00:20:36,430 --> 00:20:39,520
‫สิ่งเหล่านั้นกำลังจะมาในไม่ช้านี้

230
00:20:39,520 --> 00:20:41,170
‫ขอแสดงความยินดีด้วย

231
00:20:41,170 --> 00:20:46,570
‫คุณมาไกลแล้ว และเหลืออีกเพียงไม่กี่ก้าว

232
00:20:46,600 --> 00:20:48,310
‫แล้วพบกันใหม่ในวิดีโอหน้าครับ

