﻿1
00:00:04,470 --> 00:00:05,160
‫สวัสดีและยินดีต้อนรับ.

2
00:00:05,160 --> 00:00:11,220
‫ในการบรรยายนี้ เราจะออกแบบปืนของเราเพื่อให้เมื่อเรากดปุ่มเมาส์หรือไกปืน

3
00:00:11,220 --> 00:00:14,550
‫เราจะได้รับข้อความบันทึก

4
00:00:14,550 --> 00:00:20,370
‫และข้อความบันทึกนี้เป็นขั้นตอนแรกในการทำให้สิ่งอื่น ๆ มากมายหมดไปจากสถาปัตยกรรมปืนนี้

5
00:00:20,370 --> 00:00:22,320
‫มาดูวิธีทำกันเลยดีกว่า

6
00:00:23,060 --> 00:00:28,300
‫ดังนั้นเราจึงต้องการให้ปืนนี้ยิงได้ในท้ายที่สุด และนั่นคือแก่นของปืน

7
00:00:28,310 --> 00:00:33,000
‫ทำไมเราถึงเลือกให้ปืนเป็นแกนหลักของสถาปัตยกรรมการยิงของเรา?

8
00:00:33,020 --> 00:00:39,540
‫อย่างที่ฉันได้พูดไปบ้างแล้ว เราต้องการที่จะสนับสนุนวิธีการถ่ายภาพประเภทต่างๆ

9
00:00:39,540 --> 00:00:42,480
‫ทีนี้ วิธีถ่ายภาพที่เรามักมีมีประเภทใดบ้าง

10
00:00:42,500 --> 00:00:49,700
‫มีการยิงโดยตรง ซึ่งมักใช้การติดตามรังสีและเส้นสายตาโดยตรงเพื่อตรวจสอบว่าเหยื่อถูกยิงหรือไม่

11
00:00:49,700 --> 00:00:52,630
‫มันจะไปบอกว่า โอเค ฉันมองเห็นศัตรูตัวนั้น

12
00:00:52,640 --> 00:00:55,610
‫เป็นแนวที่มองเห็นจากปืนถึงศัตรูได้ชัดเจน

13
00:00:55,610 --> 00:00:57,980
‫มันกระทบเขา เราเลยต้องทำความเสียหายให้เขา

14
00:00:57,980 --> 00:01:01,400
‫มิฉะนั้น หากผมพลาดไปและไม่โดนศัตรู จะไม่สร้างความเสียหาย

15
00:01:01,400 --> 00:01:02,750
‫นั่นเป็นวิธีหนึ่งที่ง่ายมาก

16
00:01:02,750 --> 00:01:05,640
‫มันไม่ได้จำลองฟิสิกส์ของกระสุนจริง ๆ แต่ไม่จำเป็น

17
00:01:05,660 --> 00:01:11,030
‫ด้วยเหตุผลด้านประสิทธิภาพ ตอนนี้เราไม่มีเครื่องยิงจรวดหรืออะไรทำนองนั้น มันมักจะเป็นกระสุนที่ช้ามาก

18
00:01:11,030 --> 00:01:16,640
‫เราต้องการเห็นผลของโพรเจกไทล์นั้นที่เคลื่อนที่ไปในอากาศและการหน่วงเวลามีความสำคัญ

19
00:01:16,640 --> 00:01:21,830
‫ซึ่งในกรณีนี้เราอาจวางไข่โพรเจกไทล์นั้นและดูว่าโพรเจกไทล์กระทบในเวลา

20
00:01:21,830 --> 00:01:29,000
‫5 วินาที หรือเราอาจไปเส้นทางอื่นด้วยกระสุน ดรอปและไรเฟิลและไรเฟิลซุ่มยิงในระยะไกล

21
00:01:29,000 --> 00:01:32,990
‫ทั้งหมดนี้สามารถเปลี่ยนแปลงได้ขึ้นอยู่กับการใช้งานปืนของเรา

22
00:01:32,990 --> 00:01:36,220
‫ตอนนี้เรากำลังจะใช้ปืนหนึ่งกระบอกในส่วนนี้

23
00:01:36,230 --> 00:01:38,840
‫มันจะเป็นปืนไรเฟิล ปืนประเภทยิงตรง

24
00:01:38,840 --> 00:01:46,550
‫แต่เพื่อที่จะปล่อยให้สถาปัตยกรรมนั้นเปิดกว้างให้คุณขยายออกไป เราจะให้ปืนรับผิดชอบในการยิง

25
00:01:46,550 --> 00:01:52,010
‫นั่นหมายความว่าเราต้องเดินหน้าต่อไปและแนะนำสถาปัตยกรรมการยิงเข้าไปในปืนของเรา

26
00:01:52,010 --> 00:01:52,760
‫ดังนั้นเราจึงมีปืน

27
00:01:53,090 --> 00:02:05,270
‫H เราต้องการสร้างฟังก์ชันสาธารณะสำหรับสิ่งนี้ ซึ่งจะทำให้เราสามารถดึงไกปืนจากตัวละครที่ยิงปืนหรือจากที่ใดก็ตามที่เรากำลังป้อนข้อมูล

28
00:02:05,270 --> 00:02:12,590
‫ในกรณีของศัตรู เราจะดึงทริกเกอร์นั้นออกจากตา

29
00:02:12,890 --> 00:02:15,590
‫มาสร้างโมฆะกันเถอะ

30
00:02:15,590 --> 00:02:21,020
‫ไม่จำเป็นต้องมีวิธีทริกเกอร์แบบดึงกลับ และไม่จำเป็นต้องดำเนินการใดๆ

31
00:02:21,020 --> 00:02:24,710
‫ทั้งหมดที่เราต้องรู้คือเราต้องการดึงทริกเกอร์ในเฟรมนี้

32
00:02:24,710 --> 00:02:31,310
‫เท่านี้ก็เพียงพอแล้ว ตอนนี้ฉันจะดำเนินการต่อและสร้างการใช้งานด้วย control

33
00:02:31,310 --> 00:02:33,950
‫shift P และสร้างการนำไปใช้

34
00:02:34,610 --> 00:02:40,160
‫และในที่นี้ ทั้งหมดที่ฉันจะทำคือฉันจะใส่บันทึก YUI และฉันจะเตือนให้โดดเด่นและเปลี่ยนข้อความเป็น

35
00:02:40,190 --> 00:02:48,560
‫You've been shot เช่นนั้น และเยี่ยมมาก .

36
00:02:48,560 --> 00:02:53,120
‫นั่นคือสิ่งที่เราจะเรียกในตัวละครของเรา DHCP

37
00:02:54,080 --> 00:02:56,080
‫ดังนั้นนี่จะเป็นสิ่งที่ท้าทายสำหรับคุณ

38
00:02:56,090 --> 00:02:57,470
‫เป็นการผูกข้อมูลอินพุตเพิ่มเติม

39
00:02:57,470 --> 00:02:58,790
‫เราได้ทำการผูกอินพุตไว้มากมายที่นี่

40
00:02:58,790 --> 00:03:01,860
‫คุณมีตัวอย่างมากมายของการผูกข้อมูลเข้า

41
00:03:01,880 --> 00:03:02,990
‫ไปข้างหน้าและทำเช่นนี้

42
00:03:02,990 --> 00:03:09,290
‫ในการเชื่อมต่อการถ่ายทำ คุณจะต้องสร้างแอคชั่นใหม่ในการตั้งค่าโปรเจ็กต์สำหรับการถ่ายภาพ

43
00:03:09,290 --> 00:03:20,360
‫ผูกมันไว้กับคีย์ของคุณ ทริกเกอร์ที่ถูกต้อง อะไรก็ตามที่คุณต้องการผูกมันไว้ จากนั้นผูกมันเข้ากับตัวละครที่ตั้งค่าวิธีการอินพุตของผู้เล่นเพื่อทำสิ่งนี้

44
00:03:20,360 --> 00:03:30,320
‫และหลังจากผูกอักขระแล้ว คุณจะสามารถเรียกทริกเกอร์การดึงจากภายในฟังก์ชันที่คุณสร้างขึ้นบนตัวละครได้

45
00:03:30,320 --> 00:03:38,360
‫อย่าลืมใส่ฟังก์ชั่นเข้าไปในตัวละครเพื่อตั้งค่าการผูก แทนที่จะพยายามผูกกับปืนนั้นโดยตรง

46
00:03:38,360 --> 00:03:40,250
‫การผูกติดกับปืนโดยตรงจะไม่ทำงาน

47
00:03:40,250 --> 00:03:42,920
‫คุณต้องใส่ตัวกลางของฟังก์ชันเล็กๆ น้อยๆ เข้าไป

48
00:03:43,370 --> 00:03:53,180
‫หยุดวิดีโอชั่วคราวแล้วฉันจะให้คำใบ้หรือการเริ่มต้นเล็กน้อยหากคุณกำลังดิ้นรนกับความท้าทายในส่วนสุดท้ายของการสร้างฟังก์ชันตัวกลาง

49
00:03:53,990 --> 00:03:56,840
‫คำใบ้มาถึงนี้แล้ว หากคุณไม่ต้องการคำใบ้ ให้หยุดเดี๋ยวนี้

50
00:03:56,840 --> 00:04:03,830
‫แต่คำใบ้คือเรากำลังจะทำสิ่งนี้ ซึ่งมีฟังก์ชั่นส่วนตัวใหม่ที่เรียกว่า

51
00:04:03,830 --> 00:04:09,110
‫void, shoot และสร้างการใช้งานใน C++

52
00:04:09,110 --> 00:04:14,630
‫และนี่จะอยู่ในนี้ที่เราเรียกวิธีการของปืนเอง

53
00:04:14,630 --> 00:04:18,620
‫เหนี่ยวไกปืน เรากำลังจะทำปืน

54
00:04:19,340 --> 00:04:24,950
‫แล้วเรียก pull trigger จากภายในยิง

55
00:04:24,950 --> 00:04:26,420
‫และนี่คือสิ่งที่คุณต้องผูกมัด

56
00:04:27,350 --> 00:04:34,960
‫โอเค หยุดวิดีโอชั่วคราวอีกครั้ง ถ้านั่นคือสิ่งที่คุณต้องการทำ จากนั้นไปตั้งค่าการดำเนินการ

57
00:04:34,970 --> 00:04:35,260
‫ตกลง.

58
00:04:35,270 --> 00:04:38,000
‫เราจะไปที่การตั้งค่าโครงการของเรา

59
00:04:38,000 --> 00:04:44,960
‫ดังนั้นการตั้งค่า การตั้งค่าโปรเจ็กต์ และเราต้องการเทียบท่านี้และไปที่อินพุตของเรา และเราต้องการเพิ่มการดำเนินการใหม่

60
00:04:44,960 --> 00:04:47,570
‫และเราจะเรียกมันว่าการถ่ายทำ

61
00:04:48,300 --> 00:05:00,870
‫จากนั้นเราจะผูกสิ่งนี้กับปุ่มเมาส์ซ้ายและทริกเกอร์ขวา ไม่ใช่แกนทริกเกอร์ด้านขวา

62
00:05:01,140 --> 00:05:02,310
‫ทางขวา.

63
00:05:02,940 --> 00:05:03,990
‫เพียงแค่ทริกเกอร์

64
00:05:04,200 --> 00:05:06,390
‫ฉันคิดว่านั่นคือสิ่งที่ฉันเลือก แต่ฉันไม่ได้

65
00:05:06,580 --> 00:05:14,630
‫โอเค เราผูกมัดกับทั้งคอนโทรลเลอร์และเมาส์ จากนั้นเราจะข้ามไปผูกแกนในตัวละครเกมยิงของเรา

66
00:05:14,640 --> 00:05:17,760
‫CP ดังนั้นคัดลอกแกนผูกนี้เพื่อกระโดด

67
00:05:17,850 --> 00:05:18,780
‫ฉันหมายถึงการกระทำ

68
00:05:18,780 --> 00:05:21,150
‫แน่นอน ฉันจะทำให้สองคนนี้ปะปนกันอยู่เสมอ

69
00:05:21,480 --> 00:05:24,930
‫เราทุกคนเรียกสลับไปที่แกนยิงที่นี่

70
00:05:24,930 --> 00:05:32,790
‫การกดคือสิ่งที่เราต้องการและแทนที่จะผูกมัดเพื่อกระโดด เราจะผูกมัดกับการยิงตัวละครแทน

71
00:05:33,580 --> 00:05:36,340
‫เช่นนั้นแล้วไปต่อและสร้างกัน

72
00:05:37,120 --> 00:05:38,940
‫ดูเหมือนว่าจะทำสำเร็จแล้ว

73
00:05:38,950 --> 00:05:42,580
‫ลองปิดมันลงและดูว่าใช้งานได้หรือไม่

74
00:05:42,580 --> 00:05:48,520
‫ออกจากเกมแล้วกดเล่นอีกครั้งและดูบันทึกการส่งออกของเรา

75
00:05:48,520 --> 00:05:50,590
‫ที่สำคัญมันเล่น

76
00:05:50,590 --> 00:05:51,250
‫ใช่.

77
00:05:51,280 --> 00:05:54,580
‫ดังนั้นถ้าฉันกดปุ่มเมาส์ก็ใช้งานได้

78
00:05:54,580 --> 00:05:58,540
‫ลองดูว่าสิ่งเดียวกันจะเกิดขึ้นถ้าฉันใช้ทริกเกอร์ที่ถูกต้องหรือไม่

79
00:05:58,810 --> 00:05:59,200
‫ใช่.

80
00:05:59,200 --> 00:06:01,720
‫ไกขวาก็ทำงานเช่นกันสำหรับการยิง

81
00:06:01,720 --> 00:06:07,930
‫เห็นได้ชัดว่าข้อความบันทึกไม่ใช่วิธีที่ดีที่สุดในการแจ้งให้ผู้เล่นของคุณทราบว่ามีบางอย่างเกิดขึ้นในเกม

82
00:06:07,930 --> 00:06:12,210
‫ในการบรรยายครั้งต่อไป เราจะมาดูการเพิ่มเอฟเฟกต์อนุภาคเพื่อทำสิ่งนั้น

83
00:06:12,220 --> 00:06:13,210
‫ฉันจะไปพบคุณที่นั่น.

