﻿1
00:00:04,090 --> 00:00:09,970
‫ดังนั้น ถ้าฉันเข้าไปใกล้หอคอยของเรา ฉันจะเห็นว่าพวกมันกำลังวาดรูปทรงกลมดีบัก พิสูจน์ว่าพวกมันเรียกฟังก์ชันไฟ

2
00:00:09,970 --> 00:00:13,780
‫และพวกมันกำลังทำเช่นนั้นทุก 2 วินาที

3
00:00:14,010 --> 00:00:17,290
‫นอกจากนั้น พวกเขายังเรียกฟังก์ชันนี้เท่านั้น

4
00:00:17,290 --> 00:00:22,330
‫ถ้าฉันอยู่ในระยะยิง ถ้าฉันกลับมาที่นี่ คุณจะสังเกตเห็นว่ามันไม่ได้วาดรูปทรงกลมดีบั๊ก

5
00:00:22,330 --> 00:00:25,660
‫ดังนั้นจึงต้องมีการตรวจสอบระยะทางด้วย

6
00:00:25,660 --> 00:00:30,430
‫และทันทีที่ฉันเข้าใกล้พอ พวกเขาก็ไปที่นั่น วาดทรงกลมดีบักเหล่านั้น

7
00:00:30,460 --> 00:00:32,130
‫สวัสดีและยินดีต้อนรับกลับ

8
00:00:32,140 --> 00:00:40,270
‫ตอนนี้ เราได้สร้างฟังก์ชันการยิงแล้ว และเรากำลังใช้สิ่งนั้นในประเภทรถถัง เพราะเราผูกมันเข้ากับการทำแผนที่การยิง

9
00:00:40,270 --> 00:00:43,960
‫แต่เราต้องการนำสิ่งนี้มาใช้ซ้ำกับคลาสทาวเวอร์ด้วย

10
00:00:43,960 --> 00:00:48,820
‫ตอนนี้ แทนที่จะใช้อินพุตของผู้ใช้สำหรับคลาสทาวเวอร์ เราจะใช้ตัวจับเวลา

11
00:00:48,820 --> 00:00:54,370
‫เรากำลังจะสร้างตัวจับเวลาสำหรับชั้นทาวเวอร์เพื่อให้ตัวจับเวลาสามารถเรียกฟังก์ชันไฟได้

12
00:00:54,370 --> 00:01:00,400
‫บ่อยครั้ง เราจะกำหนดจำนวนวินาทีที่ระบุระหว่างการเรียกใช้ฟังก์ชันไฟ

13
00:01:00,400 --> 00:01:07,450
‫เนื่องจากเราต้องการให้ฟังก์ชั่นไฟถูกเรียกบ่อย ๆ ในชั้นทาวเวอร์ เราจึงต้องพูดถึงตัวจับเวลาในตอนนี้

14
00:01:07,450 --> 00:01:13,240
‫Unreal Engine มีความสามารถในการตั้งค่าตัวจับเวลาโดยใช้คลาสที่เรียกว่า F Timer Manager

15
00:01:13,270 --> 00:01:18,670
‫มีตัวจัดการตัวจับเวลาทั่วโลกซึ่งจัดการตัวจับเวลาในโลก

16
00:01:18,700 --> 00:01:26,950
‫ตอนนี้ตัวจัดการตัวจับเวลาโลกนี้มีฟังก์ชันที่เรียกว่า Set Timer และ set timer จะรับอินพุตจำนวนมาก

17
00:01:26,950 --> 00:01:29,050
‫เช่น ตัวจับเวลา

18
00:01:29,080 --> 00:01:34,000
‫นี่คือหมายเลขอ้างอิงสำหรับตัวจับเวลาเฉพาะที่จัดการโดยตัวจัดการเวลา

19
00:01:34,000 --> 00:01:44,410
‫ซึ่งช่วยให้ผู้จัดการมีตัวจับเวลาได้หลายตัว และเราสามารถเข้าถึงข้อมูลตัวจับเวลาสำหรับตัวจับเวลาแต่ละตัวได้โดยใช้ตัวจับเวลาเป็นชื่อหรือรหัสสำหรับตัวจับเวลานั้น

20
00:01:44,530 --> 00:01:47,680
‫นี่คือวัตถุของตัวจับเวลาประเภท F

21
00:01:47,680 --> 00:01:52,870
‫ดังนั้นเราจึงสร้างตัวจับเวลาและส่งต่อไปยังฟังก์ชันตั้งเวลา

22
00:01:52,900 --> 00:01:59,560
‫ตอนนี้ตั้งเวลายังต้องการอินพุตอื่น ๆ เช่นอัตราหรือระยะเวลาที่เราควรรอก่อนที่จะทำอะไรจริง

23
00:01:59,560 --> 00:02:01,630
‫ๆ

24
00:02:01,630 --> 00:02:05,380
‫ตอนนี้มีบางอย่างอยู่ในฟังก์ชันการโทรกลับของเรา

25
00:02:05,380 --> 00:02:12,130
‫เราสร้างฟังก์ชันและเราผูกฟังก์ชันนี้กับตัวจับเวลาเพื่อให้ทันทีที่เวลาผ่านไป โดยเฉพาะอัตราของตัวจับเวลา

26
00:02:12,130 --> 00:02:16,690
‫ฟังก์ชันการโทรกลับของเราจะเรียกใช้ได้

27
00:02:16,690 --> 00:02:23,140
‫เราจึงเห็นว่าเราต้องการของบางอย่างสำหรับตัวจับเวลา และเราจะวางสิ่งเหล่านี้ไว้ในชั้นทาวเวอร์

28
00:02:23,140 --> 00:02:30,040
‫ไปที่ Tower H และในไฟล์ Tower H เราจะเพิ่มตัวแปรส่วนตัว

29
00:02:30,040 --> 00:02:33,940
‫ดังนั้นภายใต้ระยะการยิง เราจำเป็นต้องมีตัวจับเวลาของเรา

30
00:02:33,940 --> 00:02:40,840
‫นี่คือตัวจับเวลา F และเราสามารถเรียกตัวจับเวลาอัตราการยิงนี้ได้

31
00:02:40,870 --> 00:02:44,590
‫และเราต้องการอัตราการยิงที่จะลอยตัวด้วย

32
00:02:44,590 --> 00:02:50,320
‫เราจะเรียกอัตราการยิงนี้ และเราสามารถเริ่มต้นไปที่จุด F สองจุด

33
00:02:50,650 --> 00:02:56,920
‫ด้วยวิธีนี้เราจะต้องรอสองวินาทีก่อนที่ฟังก์ชันเรียกกลับของเราจะถูกเรียกจริงๆ

34
00:02:57,040 --> 00:03:00,460
‫และเมื่อพูดถึงฟังก์ชันการโทรกลับ เราต้องการมันจริงๆ

35
00:03:00,460 --> 00:03:05,500
‫เราจะสร้างฟังก์ชันเป็นโมฆะ และเรียกเงื่อนไขนี้ว่าเช็คไฟได้

36
00:03:06,010 --> 00:03:17,860
‫ดังนั้นเราจึงมีตัวจับเวลาและทันทีที่เราตั้งตัวจับเวลาและเริ่มทำงาน เราก็มีเวลา 2 วินาทีในการรอก่อนที่ตัวจับเวลาจะส่งผลให้ฟังก์ชันของเราถูกเรียก

37
00:03:17,860 --> 00:03:23,890
‫และผมเรียกสภาพนี้ว่าเช็คไฟ เพราะเราสามารถตรวจสอบว่าหอคอยของเราควรจะเรียกฟังก์ชันไฟได้หรือไม่

38
00:03:23,890 --> 00:03:30,280
‫เพื่อให้เราสามารถกำหนดเงื่อนไขบางอย่างที่เราสามารถตรวจสอบได้ เพื่อให้แน่ใจว่าควรเรียกไฟ

39
00:03:30,280 --> 00:03:33,010
‫ตอนนี้เราได้ประกาศฟังก์ชันสภาพไฟแล้ว

40
00:03:33,010 --> 00:03:38,710
‫เราต้องนิยามมันเพื่อที่เราจะเข้าไปที่ Tower CPP และกำหนดฟังก์ชันที่นี่

41
00:03:38,710 --> 00:03:47,440
‫ฉันจะวางมันไว้ใต้เริ่มเล่น ดังนั้นฉันจะให้ตัวฟังก์ชันและชื่อคลาสทาวเวอร์หน้าชื่อฟังก์ชัน

42
00:03:47,530 --> 00:03:56,530
‫ตอนนี้เรามีฟังก์ชันแล้ว แต่เราต้องตั้งเวลาจริงๆ เพื่อที่เวลานั้นจะเริ่มทำงานและฟังก์ชันนั้นจะถูกเรียกใช้เมื่อสิ้นสุดเวลานั้น

43
00:03:56,530 --> 00:04:02,200
‫และเราสามารถตั้งเวลาที่นี่และเริ่มเล่นเพื่อให้มันเริ่มทำงานตั้งแต่ต้นเกม

44
00:04:02,200 --> 00:04:09,910
‫ดังนั้นเราจึงพูดถึงตัวจัดการตัวจับเวลาโลกและเราสามารถเข้าถึงได้ด้วยฟังก์ชั่นที่เรียกว่า Get World Timer

45
00:04:09,910 --> 00:04:10,810
‫Manager

46
00:04:10,810 --> 00:04:16,120
‫ตอนนี้รับ World Timer Manager ส่งคืนวัตถุตัวจัดการตัวจับเวลา F

47
00:04:16,120 --> 00:04:22,300
‫และเนื่องจากเราใช้ประเภทนั้น เราจึงต้องรวมไฟล์ส่วนหัวสำหรับตัวจัดการเวลา F

48
00:04:22,300 --> 00:04:26,660
‫ดังนั้นนี่คือตัวจัดการตัวจับเวลา h.

49
00:04:26,680 --> 00:04:31,000
‫และเรายังสามารถเห็นฟังก์ชันบางอย่างที่เป็นของคลาสนี้

50
00:04:31,000 --> 00:04:37,150
‫เลื่อนดูสิ่งเหล่านี้หากคุณสนใจฟังก์ชันต่างๆ ทั้งหมดที่เป็นของตัวจัดการตัวจับเวลา

51
00:04:37,150 --> 00:04:37,990
‫F

52
00:04:38,110 --> 00:04:44,320
‫ดังนั้นเราจึงรวมไฟล์ส่วนหัวนี้ไว้ที่ด้านบนสุดของหอคอย ใต้ส่วนอื่นๆ ได้

53
00:04:44,320 --> 00:04:55,060
‫ตอนนี้เรามีไฟล์ส่วนหัวแล้ว ตอนนี้เราสามารถเข้าถึงตัวจัดการตัวจับเวลาโลกและฟังก์ชันที่เราสนใจเรียกว่าตัวตั้งเวลา

54
00:04:55,480 --> 00:05:01,060
‫ตอนนี้รับตัวจัดการตัวจับเวลาโลกเพียงแค่ส่งคืนตัวจัดการตัวจับเวลา F จะไม่ส่งคืนตัวชี้

55
00:05:01,060 --> 00:05:03,460
‫เราจะใช้จุดแทน

56
00:05:03,520 --> 00:05:06,430
‫Arrow และเราจะเรียกตั้งเวลา

57
00:05:06,550 --> 00:05:11,080
‫ตอนนี้ตัวตั้งเวลามีหลายรุ่นหรือฟังก์ชั่นโอเวอร์โหลด

58
00:05:11,080 --> 00:05:18,250
‫ตอนนี้ vs code มีป๊อปอัปนี้ที่ช่วยให้เราผ่านการโอเวอร์โหลดแต่ละครั้งและดูเวอร์ชันต่างๆ ของฟังก์ชันนี้

59
00:05:18,250 --> 00:05:24,730
‫และเวอร์ชันที่ฉันสนใจก่อนอื่นใช้ที่จับตัวจับเวลา F และเราจะใช้ตัวจับเวลาอัตราการยิง

60
00:05:24,760 --> 00:05:28,480
‫ซึ่งเราประกาศไว้ใน Tower H

61
00:05:28,480 --> 00:05:37,350
‫ตอนนี้พารามิเตอร์ถัดไปสำหรับการโอเวอร์โหลดฟังก์ชันเฉพาะของเราจะเป็นคลาสผู้ใช้ เช่นเดียวกับในแกนผูกและการดำเนินการผูก

62
00:05:37,360 --> 00:05:43,240
‫นี่คือคลาสที่เรากำลังดำเนินการอยู่ โดยเราจะโยงฟังก์ชันสำหรับสิ่งนั้นจะเป็นสิ่งนี้

63
00:05:43,240 --> 00:05:52,450
‫ต่อไปจะเป็นฟังก์ชันเรียกกลับ ซึ่งจะเป็นเงื่อนไขการตรวจสอบหอ A ของเรา ซึ่งเป็นฟังก์ชันที่เราเพิ่งสร้างขึ้น

64
00:05:52,450 --> 00:05:58,930
‫ตอนนี้เราต้องการที่อยู่ของโอเปอเรเตอร์เพราะตัวตั้งเวลาใช้ที่อยู่ของฟังก์ชัน

65
00:05:58,930 --> 00:06:07,390
‫ตอนนี้ พารามิเตอร์ถัดไปคือทศนิยมสำหรับอัตรานี้ เป็นเวลาที่ควรผ่านไปก่อนที่การโทรกลับของเราจะถูกเรียก

66
00:06:07,390 --> 00:06:09,910
‫นั่นจะเป็นอัตราการยิงของเรา

67
00:06:09,910 --> 00:06:15,730
‫และพารามิเตอร์สุดท้ายคือบูลีนซึ่งจะระบุว่าตัวจับเวลานี้ควรวนซ้ำหรือไม่

68
00:06:16,060 --> 00:06:22,000
‫ตอนนี้ฉันต้องการให้ฟังก์ชันเรียกกลับของเราถูกเรียกทุกๆ 2 วินาที ดังนั้นฉันจึงต้องการให้ตัวจับเวลานี้วนซ้ำ

69
00:06:22,000 --> 00:06:23,830
‫ดังนั้นฉันจะพูดจริง

70
00:06:24,220 --> 00:06:28,180
‫หากเราส่งเป็นเท็จ 2 วินาทีก็จะผ่านไป

71
00:06:28,180 --> 00:06:30,910
‫ฟังก์ชั่นของเราจะถูกเรียกและนั่นก็คือ

72
00:06:30,910 --> 00:06:37,030
‫แต่เนื่องจากเราตั้งค่าให้วนซ้ำ ฟังก์ชันของเราจะถูกเรียกหลังจาก 2 วินาที หลังจากนั้นตัวจับเวลาจะรีสตาร์ท

73
00:06:37,030 --> 00:06:44,290
‫และหลังจากนั้นอีกสองวินาที ฟังก์ชันจะถูกเรียกอีกครั้งและจะวนซ้ำต่อไปจนกว่าเกมจะจบลง

74
00:06:44,290 --> 00:06:50,380
‫ตอนนี้เรามีฟังก์ชันที่ผูกไว้กับตัวจับเวลาของเรา และตั้งค่าให้เรียกใช้ทุก 2 วินาที

75
00:06:50,380 --> 00:06:55,540
‫ดังนั้นเราจึงผูกฟังก์ชันเข้ากับตัวจับเวลาของเรา และมันจะถูกเรียกทุกๆ 2 วินาที

76
00:06:55,660 --> 00:07:00,580
‫แต่เราต้องการหลักฐานหรือการยืนยันว่าฟังก์ชันนี้ถูกเรียกใช้จริง

77
00:07:00,580 --> 00:07:06,910
‫ดังนั้นสำหรับความท้าทายของคุณในชั้นทาวเวอร์ ไปที่ฟังก์ชันเรียกกลับใหม่ของเรา ตรวจสอบสภาพอัคคีภัย

78
00:07:06,910 --> 00:07:09,310
‫ตรวจสอบให้แน่ใจว่ารถถังอยู่ในระยะยิง

79
00:07:09,310 --> 00:07:12,970
‫คุณจะตรวจสอบระยะทางจากหอคอยถึงถัง

80
00:07:12,970 --> 00:07:17,560
‫และเรารู้วิธีการทำเช่นนี้เพราะเราทำสิ่งนี้ในฟังก์ชันติ๊กอยู่แล้ว

81
00:07:17,560 --> 00:07:22,900
‫ดังนั้นคุณอาจต้องดูในฟังก์ชันติ๊กและดูว่ามันทำอย่างไรเพื่อเตือนตัวเอง ตอนนี้ให้ตรวจสอบระยะทางนั้น

82
00:07:22,900 --> 00:07:28,720
‫ตรวจสอบให้แน่ใจว่าเราอยู่ในระยะการยิง แล้วถ้าเราอยู่ ให้เรียกใช้ฟังก์ชันไฟ หยุดวิดีโอชั่วคราวแล้วใช้งาน

83
00:07:28,720 --> 00:07:31,330
‫นี้ตอนนี้

84
00:07:34,320 --> 00:07:34,680
‫ตกลง.

85
00:07:34,680 --> 00:07:41,700
‫ดังนั้นฉันจึงกลับมาที่ Tower CP และฉันจะเลื่อนขึ้นไปที่ฟังก์ชันขีดเพื่อเตือนตัวเองว่าได้ระยะทางนี้มาได้อย่างไร

86
00:07:41,700 --> 00:07:45,620
‫และตรวจสอบเพื่อดูว่ามันอยู่ในระยะยิงหรือไม่

87
00:07:45,630 --> 00:07:50,420
‫ตอนนี้เราสามารถนำรหัสนี้กลับมาใช้ใหม่ได้ ที่นี่ และตรวจสอบสภาพการติดไฟ

88
00:07:50,430 --> 00:08:02,040
‫ตอนนี้โค้ดที่นำกลับมาใช้ใหม่ไม่ได้มีประสิทธิภาพมากนัก ดังนั้นเราอาจคิดเกี่ยวกับการปรับโครงสร้างใหม่ แต่ก่อนอื่น ให้ตรวจสอบให้แน่ใจว่าเราได้ทำงานเพื่อให้เราสามารถตรวจสอบตัวชี้รถถังของเราก่อนเพื่อให้แน่ใจว่าถูกต้อง

89
00:08:02,040 --> 00:08:04,440
‫ผมจะไปทำที่นี่และตรวจสอบสภาพไฟ

90
00:08:04,440 --> 00:08:09,870
‫ฉันจะบอกว่าถ้าแทงค์ และถ้าแทงค์ใช้ได้ สิ่งต่อไปที่เราทำได้คือหาระยะทางนั้น

91
00:08:09,870 --> 00:08:14,700
‫ซึ่งก็คือค่านี้ที่คำนวณด้วยฟังก์ชัน f vector dist

92
00:08:14,700 --> 00:08:19,380
‫ผมจะเอาไปวางตรงนี้ในสภาพเช็คไฟ

93
00:08:19,380 --> 00:08:25,050
‫สิ่งต่อไปที่เราทำคือตรวจสอบว่าระยะทางน้อยกว่าหรือเท่ากับระยะการยิงหรือไม่

94
00:08:25,050 --> 00:08:26,610
‫นั่นคือสิ่งที่เราจะทำด้านล่าง

95
00:08:26,610 --> 00:08:35,820
‫เราจะบอกว่าถ้าระยะทางน้อยกว่าหรือเท่ากับระยะการยิง และถ้าเป็นกรณีนี้ เราก็เรียกฟังก์ชันไฟได้

96
00:08:35,820 --> 00:08:38,760
‫เราจะเรียกว่าไฟ ง่ายๆ แค่นี้เอง

97
00:08:38,760 --> 00:08:46,080
‫ไปข้างหน้าและรวบรวมสิ่งนี้และเรากลับมาที่บรรณาธิการและฉันจะเล่นและเข้าสู่ระยะยิง

98
00:08:46,080 --> 00:09:00,630
‫และฉันเห็นได้ว่าหอคอยของเรากำลังวาดรูปทรงกลมดีบักที่ปลายกระบอกปืน ดังนั้นเราจะเห็นว่ามีการเรียกฟังก์ชันไฟนั้นและทำงานในลักษณะเดียวกันกับหอคอยเช่นเดียวกับในถัง

99
00:09:00,630 --> 00:09:01,740
‫เท่านี้ก็เยี่ยมแล้ว

100
00:09:01,740 --> 00:09:09,420
‫นี่เป็นการพิสูจน์ให้เราเห็นว่าตัวจับเวลากำลังทำงานอยู่และมีการเรียกฟังก์ชันเรียกกลับของเราทุกๆ 2 วินาที

101
00:09:09,450 --> 00:09:14,910
‫โอเค เราเรียกฟังก์ชันไฟนี้ทุกๆ 2 วินาที ตอนนี้อยู่ในการตรวจสอบ สภาพไฟ

102
00:09:14,910 --> 00:09:22,830
‫เรามีฟังก์ชันนี้ซึ่งเราจะเห็นว่าเราอยู่ในระยะหรือไม่ และเรากำลังทำสิ่งเดียวกันนี้ในฟังก์ชันติ๊ก

103
00:09:22,830 --> 00:09:26,070
‫นี่จึงเป็นโอกาสที่ดีที่จะปรับโครงสร้างใหม่

104
00:09:26,070 --> 00:09:32,580
‫เราสามารถสร้างฟังก์ชันบางอย่างที่จะคืนค่าบูลีนให้เราหากเราอยู่ในระยะของรถถัง

105
00:09:32,580 --> 00:09:37,710
‫เหตุใดเราจึงไม่ดำเนินการต่อไปและจัดองค์ประกอบใหม่อย่างรวดเร็วในฟังก์ชันการคืนค่าวัว

106
00:09:37,710 --> 00:09:41,430
‫ใน Tower H เรามาสร้างฟังก์ชั่นส่วนตัวกัน

107
00:09:41,430 --> 00:09:45,840
‫มันจะกลับบูลและเราจะบอกว่าในระยะการยิง

108
00:09:45,840 --> 00:09:51,480
‫ตอนนี้เป็นเกมง่ายๆ และหอคอยของเราจะอยู่ในระยะของรถถังเท่านั้น

109
00:09:51,480 --> 00:09:57,120
‫จึงไม่คลุมเครือเพราะว่าไม่มีอะไรอื่นที่หอคอยต้องการจะตรวจสอบเพื่อดูว่าตอนนี้อยู่ในระยะหรือไม่

110
00:09:57,120 --> 00:10:03,240
‫หากนี่เป็นเกมที่ซับซ้อนกว่านี้กับสิ่งอื่นที่หอคอยต้องการตรวจสอบระยะทาง เราก็อาจจะ

111
00:10:03,240 --> 00:10:10,320
‫ตั้งชื่อให้แตกต่างกันเล็กน้อย แต่เราสามารถเรียกสิ่งนี้ว่าในระยะยิงได้

112
00:10:10,320 --> 00:10:14,130
‫และสิ่งที่ฉันจะทำคือนำสิ่งนี้ไปใช้ที่นี่ในทาวเวอร์

113
00:10:14,130 --> 00:10:17,340
‫ไปข้างหน้าและสร้างฟังก์ชันร่างกาย

114
00:10:17,340 --> 00:10:20,880
‫เราต้องการหอคอยที่ซ่อมชื่อฟังก์ชันไว้ล่วงหน้า

115
00:10:20,880 --> 00:10:25,560
‫และสิ่งที่เราจะทำที่นี่ก็คือ การตรวจสอบระยะทางแบบเดียวกัน

116
00:10:25,560 --> 00:10:31,020
‫ดังนั้นก่อนอื่นเราจะตรวจสอบเพื่อให้แน่ใจว่ารถถังนั้นถูกต้องด้วย if check

117
00:10:31,020 --> 00:10:38,880
‫ถ้าเป็นเช่นนั้น เราก็จะได้ระยะทางนี้ เพื่อที่เราจะสามารถคัดลอกเส้นนี้ และสร้างระยะห่างในพื้นที่ของเราที่ลอยตรงนี้

118
00:10:38,880 --> 00:10:45,690
‫และเพียงตรวจสอบระยะห่างนั้นกับระยะการยิง เพื่อที่เราจะบอกได้ว่าระยะทางนั้นน้อยกว่าหรือเท่ากับระยะการยิงหรือไม่

119
00:10:45,690 --> 00:10:51,180
‫และถ้าเป็นกรณีนี้ เราก็สามารถคืนค่า true ได้

120
00:10:51,180 --> 00:10:54,780
‫ฟังก์ชันนี้สามารถคืนค่าเป็นจริงได้

121
00:10:54,780 --> 00:10:58,950
‫และตอนนี้เรามีฟังก์ชันที่เราเรียกได้ว่าจะคืนค่าเป็นจริงหากเราอยู่ในระยะ

122
00:10:58,950 --> 00:11:05,970
‫ทีนี้ ทันทีที่เรากด return true line ที่นี่ในคำสั่ง if ฟังก์ชันจะส่งคืน

123
00:11:05,970 --> 00:11:07,470
‫เราจะกระโดดออกจากฟังก์ชัน

124
00:11:07,470 --> 00:11:10,830
‫ดังนั้นอย่างอื่นหลังจากนี้ if คำสั่งจะไม่ทำงาน

125
00:11:10,830 --> 00:11:18,720
‫สิ่งที่เราทำได้คือที่ส่วนท้ายสุดของฟังก์ชัน in fire range เราสามารถคืนค่า false ได้ เพราะหากเราไปถึงค่า

126
00:11:18,720 --> 00:11:25,020
‫return จริง เราจะไม่มีวันไปถึง return false line ข้างล่างนี้

127
00:11:25,020 --> 00:11:27,690
‫เราจะออกจากฟังก์ชันก่อนเวลาอันควร

128
00:11:27,690 --> 00:11:35,250
‫แต่ถ้าเราไม่อยู่ในระยะ ถ้าเช็คระยะที่นี่ล้มเหลว เราจะไม่ตีค่ากลับเป็นจริง

129
00:11:35,370 --> 00:11:39,300
‫และเราจะไปถึงจุดสิ้นสุดของฟังก์ชันและคืนค่าเท็จ

130
00:11:39,300 --> 00:11:49,440
‫ดังนั้นฟังก์ชันนี้จะคืนค่า true หรือ false โดยขึ้นอยู่กับว่าเราอยู่ในขอบเขตหรือไม่ และเราสามารถใช้ฟังก์ชันนี้แทนการใช้โค้ดซ้ำในสองฟังก์ชันของเรา

131
00:11:49,440 --> 00:11:57,180
‫ตัวอย่างเช่น ข้างบนนี้ เราต้องการเช็คเพียงครั้งเดียวเพื่อดูว่าเราอยู่ในระยะหรือไม่ ก่อนที่เราจะหมุนป้อมปืน

132
00:11:57,180 --> 00:12:07,830
‫สิ่งที่เราทำได้คือเราสามารถพูดได้ว่าถ้าอยู่ในระยะการยิง และถ้าสิ่งนี้เป็นจริง เราอยู่ในระยะการยิง เพื่อที่เราจะได้เรียกป้อมปืนหมุนได้

133
00:12:07,860 --> 00:12:10,170
‫เราจะใส่มันตรงนั้นในคำสั่ง if

134
00:12:10,170 --> 00:12:15,090
‫และตอนนี้โค้ดทั้งหมดนี้ไม่จำเป็น ดังนั้นเราจึงสามารถลบออกได้

135
00:12:15,450 --> 00:12:19,050
‫และตอนนี้ก็ดูสะอาดตากว่าที่เคยมีมามาก

136
00:12:19,050 --> 00:12:23,940
‫แล้วเราก็ลงมาที่นี่เพื่อตรวจสภาพไฟและทำแบบเดียวกันได้

137
00:12:23,940 --> 00:12:29,340
‫แทนที่จะทั้งหมดนี้ เราสามารถตรวจสอบว่าอยู่ในระยะการยิงหรือไม่

138
00:12:31,800 --> 00:12:35,010
‫และถ้าเป็นเช่นนั้น เราก็เรียกไฟได้

139
00:12:35,280 --> 00:12:43,100
‫ตอนนี้เราได้ปรับโครงสร้างโค้ดทั้งหมดเป็นเช็คที่ทำในฟังก์ชันระยะยิงของเราสำเร็จแล้ว

140
00:12:43,110 --> 00:12:50,100
‫ไปข้างหน้าและรวบรวมสิ่งนี้อีกครั้งและลองเล่นทดสอบอย่างรวดเร็วจริง ๆ เพื่อให้แน่ใจว่าทุกอย่างทำงานตามที่คาดไว้

141
00:12:50,100 --> 00:12:54,210
‫ดังนั้นเราจะไปข้างหน้าและตีเล่นและเข้าสู่ระยะยิง

142
00:12:54,210 --> 00:12:58,110
‫และแน่นอน เราอยู่ในระยะการยิง และมันทำงานอย่างถูกต้อง

143
00:12:58,110 --> 00:13:05,760
‫โดยสรุป เราสร้างตัวจับเวลา และทุก 2 วินาทีเราจะเรียกใช้ฟังก์ชันไฟในชั้นหอคอย

144
00:13:05,790 --> 00:13:08,700
‫ตอนนี้เรากำลังตรวจสอบเพื่อดูว่า Tank อยู่ในระยะหรือไม่

145
00:13:08,700 --> 00:13:15,570
‫ดังนั้นเราจึงเรียกใช้ฟังก์ชันการยิงทุก 2 วินาทีเท่านั้นหากรถถังอยู่ภายในระยะการยิง

146
00:13:15,570 --> 00:13:19,950
‫และเรายังเห็นด้วยว่าเราใช้การตรวจสอบระยะทางนั้นในฟังก์ชันสองแบบที่แตกต่างกัน

147
00:13:19,950 --> 00:13:26,670
‫ดังนั้นเราจึงปรับโครงสร้างให้เป็นฟังก์ชันของตัวเอง และเรียกง่ายๆ ว่าเพื่อตรวจสอบเพื่อดูว่าเราอยู่ในระยะหรือไม่

148
00:13:26,670 --> 00:13:29,970
‫ตอนนี้เรามีฟังก์ชั่นไฟที่เรียกว่าชั้นทาวเวอร์

149
00:13:29,970 --> 00:13:35,190
‫สิ่งต่อไปที่ต้องทำคือเริ่มวางไข่ด้วยฟังก์ชันการยิงของเรา

150
00:13:35,190 --> 00:13:38,420
‫เราจะพูดถึงเรื่องนั้นในวิดีโอหน้า

151
00:13:38,430 --> 00:13:39,330
‫เจอกันเร็วๆนี้ครับ

