﻿1
00:00:04,550 --> 00:00:05,810
‫สวัสดีและยินดีต้อนรับ.

2
00:00:05,810 --> 00:00:11,330
‫ในการบรรยายนี้ เราจะเริ่มเพิ่มฟังก์ชันการทำงานให้มากขึ้นในแผนผังพฤติกรรมของเราด้วยการเพิ่มงานที่กำหนดเอง

3
00:00:11,330 --> 00:00:18,200
‫ค่ากระดานดำที่ชัดเจนนี้ เราจะสร้างสิ่งนั้นเองทั้งหมดในภาษา C++

4
00:00:18,230 --> 00:00:20,240
‫มาดูวิธีทำกันเลยดีกว่า

5
00:00:21,280 --> 00:00:21,490
‫ตกลง.

6
00:00:21,490 --> 00:00:28,780
‫ดังนั้นฉันจึงอยากจะขยายพฤติกรรมของแผนผังพฤติกรรมนี้ออกไป เพื่อให้เราสามารถตรวจสอบได้

7
00:00:28,780 --> 00:00:33,040
‫และเมื่อเราสำรวจเสร็จแล้ว เราก็แยกย้ายกันกลับบ้าน

8
00:00:33,040 --> 00:00:40,240
‫ดังนั้นฉันจะเพิ่มการย้ายไปยังงานที่นี่ในภายหลัง ซึ่งจะส่งเรากลับไปยังตำแหน่งเริ่มต้น

9
00:00:40,630 --> 00:00:49,150
‫และสิ่งที่เราต้องทำเพื่อไปถึงที่นั่นก็คือต้องมีความคิดว่าเราเคยไปที่สถานที่เล่นที่รู้จักล่าสุดแล้วหรือยัง

10
00:00:49,210 --> 00:00:54,490
‫และวิธีที่ฉันจะทำนั้นโดยพื้นฐานแล้วโดยการตั้งค่าตำแหน่งผู้เล่นที่รู้จักล่าสุดเมื่อเราได้ตรวจสอบมันแล้ว

11
00:00:54,490 --> 00:00:57,820
‫หากตอนนี้เราไม่มีวิธีการทำเช่นนั้น

12
00:00:57,820 --> 00:01:00,910
‫แต่ก่อนอื่น เรามาสร้างมัณฑนากรกันก่อน

13
00:01:00,910 --> 00:01:16,630
‫ดังนั้นให้เพิ่มมัณฑนากรเพื่อตรวจสอบ Blackboard ที่จะไปและเปลี่ยนชื่อเพื่อให้ได้รับการตรวจสอบเช่นนี้และนี้จะตรวจสอบว่ามีการตั้งค่าตำแหน่งที่รู้จักล่าสุดหรือไม่

14
00:01:16,750 --> 00:01:23,080
‫และนั่นหมายความว่าเราจำเป็นต้องมีโหนดบางประเภทที่ช่วยให้เรายกเลิกการตั้งค่าคีย์กระดานดำได้

15
00:01:23,740 --> 00:01:25,300
‫ที่ตอนนี้ไม่มีอยู่จริง

16
00:01:25,300 --> 00:01:26,650
‫คุณแค่คิดว่ามันใช่ แต่มันก็ไม่

17
00:01:26,650 --> 00:01:31,360
‫นี่เป็นโอกาสที่ดีสำหรับฉันที่จะแสดงให้คุณเห็นว่าเราจะสร้างงานที่กำหนดเองได้อย่างไร

18
00:01:31,360 --> 00:01:37,150
‫ตอนนี้คุณสามารถทำได้อย่างง่ายดายมากโดยใช้ Blueprint หรือฉันจะแสดงให้คุณเห็นวิธีที่ยากขึ้นเล็กน้อย

19
00:01:37,150 --> 00:01:41,050
‫แต่วิธีที่ให้พลังมากมายแก่คุณ ซึ่งทำผ่าน C++

20
00:01:41,440 --> 00:01:51,640
‫ดังนั้น เราจะไปที่เบราว์เซอร์เนื้อหาหลักของเรา ไปที่เพิ่มใหม่และไปที่คลาส C++ ใหม่ และเราต้องการแสดงช่องทำเครื่องหมายของคลาสทั้งหมด

21
00:01:51,640 --> 00:01:56,950
‫จากนั้นเรากำลังค้นหา Beat Task และมีตัวเลือกมากมายที่นี่

22
00:01:56,950 --> 00:02:04,900
‫คุณสามารถเห็นได้หลายอย่างที่เป็นงานที่สร้างขึ้นจริงเช่นส่งเสียงหรือมีการย้ายไปที่นี่หรือรอ

23
00:02:05,110 --> 00:02:08,950
‫ตอนนี้คุณสามารถไปดู C ++ เพื่อดูว่ามีการใช้งานอย่างไร

24
00:02:08,950 --> 00:02:13,720
‫มีประโยชน์เสมอ แต่สิ่งที่เราสนใจคือมรดกจากอะไร?

25
00:02:13,720 --> 00:02:17,200
‫เราควรใช้อะไรเป็นพื้นฐานสำหรับโหนดของเราเอง?

26
00:02:17,260 --> 00:02:19,030
‫ตอนนี้มีสองสามตัวเลือกที่นี่

27
00:02:19,030 --> 00:02:25,420
‫คุณสามารถเลือกที่จะมีโหนดงานเป็นพื้นฐานของคุณ หรือคุณสามารถใช้ฐานกระดานดำก็ได้

28
00:02:25,420 --> 00:02:27,100
‫ตอนนี้ความแตกต่างระหว่างทั้งสองคืออะไร?

29
00:02:27,560 --> 00:02:28,630
‫มาดูกันเร็ว

30
00:02:28,630 --> 00:02:31,930
‫ดังนั้นย้ายไปใช้ฐานกระดานดำจริงๆ

31
00:02:31,930 --> 00:02:40,270
‫และนั่นหมายความว่ามีปุ่มแบบเลื่อนลงสำหรับกระดานดำที่ช่วยให้เราเลือกปุ่มกระดานดำที่จะใช้งานได้

32
00:02:40,270 --> 00:02:45,940
‫ซึ่งหมายความว่าเราไม่ต้องฮาร์ดโค้ดกับงานของเราด้วยปุ่มกระดานดำที่เรากำลังทำงานด้วย ซึ่งถือว่าดีมากเพราะช่วยให้เรานำงานเหล่านั้นกลับมาใช้ใหม่ในสถานการณ์ต่างๆ

33
00:02:45,940 --> 00:02:49,990
‫ได้

34
00:02:49,990 --> 00:02:56,710
‫ดังนั้นหากคุณต้องการแป้นกระดานดำ ฐานกระดานดำก็เหมาะเป็นอย่างยิ่ง ไม่เช่นนั้นคุณจะใช้อีกอันหนึ่ง

35
00:02:56,710 --> 00:03:02,370
‫ไปกันเถอะ และเพิ่มคลาส C++ ใหม่อีกครั้ง แสดงคลาสทั้งหมดและเรากำลังมองหางานจังหวะอีกครั้ง

36
00:03:02,500 --> 00:03:06,910
‫และเรากำลังเลือก Blackboard Base hit ต่อไป

37
00:03:06,910 --> 00:03:18,400
‫ตอนนี้ฉันจะเปลี่ยนชื่อสิ่งนี้เป็น Beat Task, Underscore Clear Blackboard Value และเราจะดำเนินการสร้างชั้นเรียนนั้นที่นี่

38
00:03:18,760 --> 00:03:20,470
‫ตอนนี้ในตอนแรกสิ่งนี้จะล้มเหลว

39
00:03:20,470 --> 00:03:23,440
‫ลองคลิกใช่และดูว่าข้อความแสดงข้อผิดพลาดอยู่ที่นี่อย่างไร

40
00:03:23,710 --> 00:03:29,800
‫มันพูดอะไรบางอย่างเกี่ยวกับ Link ซึ่งย่อมาจาก Link, สัญลักษณ์ภายนอกที่ไม่ได้รับการแก้ไข, blah, blah,

41
00:03:29,800 --> 00:03:30,070
‫blah

42
00:03:30,100 --> 00:03:35,590
‫โดยปกติเมื่อคุณได้รับข้อผิดพลาดประเภทนี้จากตัวเชื่อมโยง แสดงว่าคุณมีบางอย่างในไฟล์ส่วนหัวที่ไม่ได้อยู่ใน

43
00:03:35,590 --> 00:03:44,860
‫C++ ของคุณ หรือในกรณีนี้หมายความว่าไม่มีโมดูลที่เรารวมอยู่ด้วย กำลังพึ่งพา

44
00:03:44,860 --> 00:03:52,030
‫และตามประเภทของสัญลักษณ์ที่กำลังมองหา ฉันเห็นได้ว่านี่คืออินเทอร์เฟซเจ้าของงานการเล่นเกม

45
00:03:52,030 --> 00:03:52,750
‫AI

46
00:03:53,020 --> 00:03:58,930
‫ดูเหมือนว่าจะกำลังมองหาบางอย่างเกี่ยวกับงานการเล่นเกมและนั่นคือโมดูลในความเป็นจริง

47
00:03:58,930 --> 00:04:07,300
‫ดังนั้น ถ้าเราไปที่โค้ด Visual Studio ของเราแล้วเปิดไฟล์เบราว์เซอร์ มันจะเลื่อนขึ้นไปที่โปรเจ็กต์ของฉัน

48
00:04:07,300 --> 00:04:09,850
‫จากนั้นภายใต้แหล่งปืนง่าย ๆ

49
00:04:09,850 --> 00:04:14,230
‫ควรมีการสร้าง X แบบง่ายๆ หรือชื่อโปรเจ็กต์ของคุณก็ตาม บิลด์

50
00:04:15,040 --> 00:04:21,190
‫และในที่นี้ ถ้าฉันให้พื้นที่เราเพิ่มอีกหน่อย คุณจะเห็นว่าเรามีการอ้างอิงสาธารณะ

51
00:04:21,190 --> 00:04:29,740
‫ชื่อโมดูล และชื่อโมดูลที่นี่ ที่เราต้องการเพิ่มลงในรายการนี้จะเป็นการเล่นเกม

52
00:04:30,890 --> 00:04:40,070
‫งานที่มี S และถ้าเราดำเนินการต่อและเพิ่มสิ่งนั้นแล้วกลับไปคอมไพล์ตอนนี้ หวังว่าทุกอย่างจะคอมไพล์ได้สำเร็จด้วยเหตุผลใดก็ตาม

53
00:04:40,070 --> 00:04:44,680
‫สิ่งนี้จะไม่ถูกเพิ่มโดยอัตโนมัติเมื่อคุณแทนที่งานการบู๊ต

54
00:04:44,690 --> 00:04:48,740
‫เมื่อเสร็จแล้ว ไปดูกันเลยว่าสร้างอะไรไว้ที่นี่

55
00:04:49,040 --> 00:04:59,210
‫เราควรจะมีคลาสใหม่ ซึ่งเป็นงานเบต้าของเรา ขีดเส้นใต้มูลค่ากระดานดำที่ชัดเจน และมันค่อนข้างว่างเปล่าในขณะนี้

56
00:04:59,270 --> 00:05:06,320
‫สิ่งที่ฉันต้องการทำคือถ้าเราจะเพิ่มสิ่งนี้ลงในแผนผังพฤติกรรมของเราในขณะนั้น มันจะมีชื่อที่น่าเกลียด

57
00:05:06,320 --> 00:05:10,160
‫ดังนั้นเราจึงต้องการชื่อที่มนุษย์อ่านง่ายสำหรับงานนี้

58
00:05:10,160 --> 00:05:14,720
‫และวิธีที่เราจะทำคือการเพิ่มคอนสตรัคเตอร์และตั้งค่าคุณสมบัติ

59
00:05:14,720 --> 00:05:17,570
‫มาสร้างตัวสร้างสาธารณะกันที่นี่

60
00:05:17,900 --> 00:05:21,620
‫ตัวสร้างมีชื่อเดียวกันกับคลาสเสมอเพื่อให้เราสามารถคัดลอกได้

61
00:05:21,750 --> 00:05:26,720
‫ไม่จำเป็นต้องใช้เครื่องหมายอัฒภาคในตอนท้าย จากนั้นมาสร้างการใช้งานใน

62
00:05:26,720 --> 00:05:28,190
‫C ++ กัน

63
00:05:28,520 --> 00:05:34,160
‫และการใช้งานเพียงแค่ต้องตั้งค่าตัวแปรที่เรียกว่าชื่อโหนด

64
00:05:34,160 --> 00:05:40,820
‫ดังนั้น หากคุณตั้งชื่อโหนดแล้วคุณใช้สตริง สตริงที่เราตั้งค่าจะเป็นชื่อโหนด

65
00:05:40,820 --> 00:05:43,220
‫มันจะเป็นกระดานดำที่ชัดเจน

66
00:05:44,210 --> 00:05:48,730
‫ความคุ้มค่าเพียงเว้นวรรคและการใช้อักษรตัวพิมพ์ใหญ่ที่ถูกต้องน่าจะดีและง่าย

67
00:05:48,740 --> 00:05:54,240
‫สิ่งหนึ่งที่ฉันลืมทำในขณะที่บันทึกคือการใช้มาโครข้อความล้อมรอบสิ่งนี้

68
00:05:54,260 --> 00:05:58,880
‫ตอนนี้ คุณควรดำเนินการต่อในโค้ดของคุณ แต่คุณจะเห็นสิ่งนั้นในโค้ดของฉัน

69
00:05:58,880 --> 00:06:05,180
‫มันจะยังคงอยู่ในลักษณะนี้ และเราน่าจะไปรวบรวมสิ่งนั้นได้แล้ว

70
00:06:06,680 --> 00:06:09,170
‫สุดยอดที่คอมไพล์สำเร็จ

71
00:06:09,350 --> 00:06:12,170
‫ดังนั้นฉันจึงขอท้าให้คุณเพิ่มโหนดใหม่นี้

72
00:06:12,170 --> 00:06:17,050
‫ดังนั้นให้เพิ่มส่วนท้ายของพฤติกรรมการสอบสวนและตรวจสอบว่าเสร็จสิ้นแล้ว

73
00:06:17,060 --> 00:06:21,470
‫โดยพื้นฐานแล้ว มันควรจะเสร็จสมบูรณ์โดยอัตโนมัติโดยไม่ต้องทำอะไรเลย

74
00:06:21,470 --> 00:06:22,790
‫แต่ตรวจสอบว่าชื่อถูกต้อง

75
00:06:22,790 --> 00:06:26,270
‫ตรวจสอบว่าคุณสามารถเพิ่มได้ และเราจะดูการเพิ่มพฤติกรรมในการบรรยายครั้งต่อไป

76
00:06:26,270 --> 00:06:27,560
‫หยุดวิดีโอชั่วคราวแล้วไปกันเลย

77
00:06:28,730 --> 00:06:29,120
‫ตกลง.

78
00:06:29,120 --> 00:06:29,680
‫ยินดีต้อนรับกลับ.

79
00:06:29,690 --> 00:06:35,660
‫ไปที่ศัตรูของเรา A กันเถอะ ฉัน. และเพิ่มในตอนท้ายของพฤติกรรมการตรวจสอบ

80
00:06:35,660 --> 00:06:39,440
‫เราจะเพิ่มมูลค่ากระดานดำที่ชัดเจนของเรา

81
00:06:39,440 --> 00:06:41,450
‫คุณจะเห็นว่ามีชื่อที่ดีที่นั่น

82
00:06:41,450 --> 00:06:45,620
‫และคุณยังเห็นได้ด้วยว่า ถ้าคุณไปที่บานหน้าต่างรายละเอียด คุณสามารถเลือกแป้นกระดานดำได้

83
00:06:45,620 --> 00:06:47,990
‫เราจะเลือกตำแหน่งผู้เล่นที่รู้จักล่าสุด

84
00:06:47,990 --> 00:06:53,240
‫แม้ว่าจะยังไม่ได้ทำอะไรเลย คุณจะเห็นได้ว่าเรามีฟังก์ชันนั้นเพราะเราสืบทอดมาจาก

85
00:06:53,240 --> 00:06:58,260
‫Blackboard Base และมาตรวจสอบกันว่ามันทำงานเสร็จโดยอัตโนมัติหรือไม่

86
00:06:58,260 --> 00:07:00,830
‫ควรทำแล้วต้องเดินหน้าต่อไป

87
00:07:00,830 --> 00:07:08,000
‫ต่อไปเรามาดูงานเรื่องน้ำหนักกันก่อนดีกว่า จะได้เห็นว่าผ่านตรงไปหรือเสร็จโดยอัตโนมัติ

88
00:07:08,090 --> 00:07:17,480
‫ดังนั้นฉันจะเล่น ฉันจะไปซ่อนตัวเองรอบมุมเท่าที่ฉันจะทำได้ จากนั้นฉันจะไปดูการสืบสวนที่มันผ่านไป

89
00:07:17,480 --> 00:07:23,090
‫และจริงๆ แล้วเขาเห็นฉัน

90
00:07:23,090 --> 00:07:25,190
‫งั้นเราไปซ่อนใหม่กันเถอะ

91
00:07:25,220 --> 00:07:27,170
‫ไปซ่อนรอบมุมถ้าทำได้

92
00:07:28,610 --> 00:07:31,060
‫ฉันจะไปและจากนั้นฉันจะไปที่

93
00:07:31,070 --> 00:07:31,560
‫ไปเลย

94
00:07:31,580 --> 00:07:35,690
‫มันผ่านค่ากระดานดำที่ชัดเจน ซึ่งหมายความว่า มันสำเร็จ เพราะเรารู้ว่าถ้ามันเป็นลำดับและล้มเหลว

95
00:07:35,690 --> 00:07:41,000
‫มันต้องมี มันก็จะหยุดและไม่ลงน้ำหนัก

96
00:07:41,000 --> 00:07:42,950
‫นั่นจึงทำงานได้อย่างถูกต้อง

97
00:07:42,950 --> 00:07:51,920
‫คุณค่าของโลกที่มืดดำกำลังกลับมาสู่ความสำเร็จทันทีและรอการบรรยายครั้งต่อไป เราจะดูว่าเราจะเพิ่มฟังก์ชันการทำงานได้อย่างไร

98
00:07:51,920 --> 00:07:52,760
‫ฉันจะไปพบคุณที่นั่น.

