﻿1
00:00:03,990 --> 00:00:05,220
‫สวัสดีและยินดีต้อนรับ.

2
00:00:05,220 --> 00:00:07,980
‫ในการบรรยายนี้ เรากำลังใช้แพลตฟอร์มเคลื่อนที่

3
00:00:07,980 --> 00:00:13,560
‫เรากำลังจะทำให้แพลตฟอร์มนี้เคลื่อนไหวโดยทำความเข้าใจสิ่งที่เรียกว่าลูปเกมและฟังก์ชันติ๊กใน

4
00:00:13,560 --> 00:00:17,010
‫C ++ เกี่ยวข้องอย่างไร

5
00:00:17,010 --> 00:00:19,260
‫ลองดำน้ำในและหา

6
00:00:19,410 --> 00:00:24,960
‫จนถึงตอนนี้ เราเพิกเฉยต่อฟังก์ชันนี้ที่นี่ ฟังก์ชันขีด

7
00:00:24,960 --> 00:00:29,430
‫เราทุ่มเททุกอย่างในการเริ่มเล่นเพราะนั่นคือสิ่งที่เราเคยใช้ใน Blueprint มาก่อน

8
00:00:29,430 --> 00:00:32,400
‫แต่ให้ความกระจ่างเล็กน้อยเกี่ยวกับฟังก์ชันติ๊กนี้

9
00:00:32,400 --> 00:00:40,620
‫เพื่อให้เข้าใจเห็บ เราต้องเข้าใจแนวคิดของ Game Loop และนี่คือวิธีที่เอ็นจิ้นเกมส่วนใหญ่จะสร้างเอ็นจิ้น

10
00:00:40,620 --> 00:00:46,170
‫วิธีการทำงานคือ อย่างแรกเลย เอ็นจิ้นเกมจะรับข้อมูลจากผู้เล่น

11
00:00:46,170 --> 00:00:52,290
‫ดังนั้นไม่ว่าจะเกิดอะไรขึ้น ไม่ว่า Space bar จะหยุดทำงาน หรือจะเป็นปุ่ม W ไม่ว่าเมาส์จะขยับเพียงเล็กน้อย

12
00:00:52,290 --> 00:00:56,520
‫ไม่ว่าปุ่มของเมาส์จะหยุดทำงาน สิ่งของทั้งหมดจะถูกเอนจิ้นเกมเข้าครอบงำและประมวลผล

13
00:00:56,520 --> 00:01:00,360
‫.

14
00:01:00,390 --> 00:01:05,640
‫จากนั้นสิ่งต่อไปคือข้อมูลจะถูกใช้เพื่ออัปเดตสถานะเกม

15
00:01:05,640 --> 00:01:10,560
‫บางทีผู้เล่นอาจจะก้าวไปข้างหน้าเล็กน้อย บางทีลูกบอลอาจจะกระเด้ง สิ่งของทั้งหมดนั้นจะถูกคำนวณและกลไกทางฟิสิกส์ทำงาน

16
00:01:10,560 --> 00:01:17,340
‫และสิ่งที่ยอดเยี่ยมทั้งหมดที่เราเคยเห็นในเกมที่แล้วของเรา

17
00:01:17,340 --> 00:01:21,930
‫ขั้นตอนที่สามคือเอ็นจิ้นเกมจะเข้าสู่สถานะของเกมและพูดว่า โอเค

18
00:01:21,930 --> 00:01:27,870
‫ผู้เล่นอยู่ที่นี่และกล้องอยู่ที่นี่ ลูกบอลอยู่ตรงนั้น และมันจะแสดงผลไปยังหน้าจอ

19
00:01:27,870 --> 00:01:34,020
‫มันจะเปลี่ยนจากชุดตัวเลขเป็นรูปภาพเพื่อแสดงบนหน้าจอของคุณ

20
00:01:34,140 --> 00:01:43,290
‫ตอนนี้ รูปภาพนั้นเรียกว่า เฟรม เฟรมที่เป็นรูปภาพเดียวในชุดของรูปภาพที่ประกอบเป็นวิดีโอ

21
00:01:43,350 --> 00:01:50,730
‫ตอนนี้ คอมพิวเตอร์ของคุณอาจสามารถแสดงเฟรมจำนวนมากในหนึ่งวินาที หรืออาจแสดงผลน้อยลง

22
00:01:50,730 --> 00:01:53,430
‫แต่นั่นเรียกว่าอัตราเฟรมเรต

23
00:01:53,430 --> 00:01:58,710
‫คอมพิวเตอร์ของคุณสามารถผ่านเกมลูปได้กี่เฟรมต่อวินาที

24
00:01:58,710 --> 00:02:03,030
‫สามารถประมวลผลอินพุต อัปเดตสถานะ และแสดงผลได้บ่อยเพียงใด

25
00:02:03,210 --> 00:02:14,880
‫นั่นคือเฟรมต่อวินาที และในสภาพที่ไม่จริง เราใช้ฟังก์ชันติ๊กเพื่อช่วยให้เราทำขั้นตอนกลางของลูปเกมเพื่อช่วยเราอัปเดตสถานะของเกมของเรา

26
00:02:14,880 --> 00:02:20,280
‫เป็นฟังก์ชันที่ได้รับการเรียกทุกเฟรมและมีอยู่ในพิมพ์เขียวตลอดจนเหตุการณ์

27
00:02:20,280 --> 00:02:27,180
‫ดังนั้นคุณจะได้รับเหตุการณ์ติ๊กและโดยพื้นฐานแล้วมันช่วยให้คุณทำบางสิ่งเพื่ออัปเดตเกมของคุณทุก

28
00:02:27,180 --> 00:02:27,750
‫ๆ เฟรม

29
00:02:27,760 --> 00:02:33,720
‫ในกรณีของเรา สิ่งที่เราต้องการจะทำคืออนุญาตให้ย้ายแพลตฟอร์มของเรา

30
00:02:33,720 --> 00:02:35,130
‫แล้วเราจะทำอย่างนั้นได้อย่างไร?

31
00:02:35,130 --> 00:02:43,020
‫ถ้าเราใช้ตำแหน่งของนักแสดงในฉากและลบออกจากการเริ่มต้นเล่น และเราอัปเดตตำแหน่งนั้นด้วยเครื่องหมายถูก

32
00:02:43,020 --> 00:02:51,660
‫มันจะไม่ช่วยอะไรมากในตอนแรก เพราะเราจะตั้งค่าการอัปเดตตำแหน่งของเราเป็นตำแหน่งเดิมอย่างต่อเนื่อง

33
00:02:51,660 --> 00:03:00,000
‫ถ้าเรากำหนดตำแหน่งของนักแสดง, เวกเตอร์ของฉันแล้วตามด้วยอัฒภาค นั่นคือทุกเฟรมเดียว ทุก

34
00:03:00,000 --> 00:03:02,190
‫ๆ การวนซ้ำผ่านลูปเกม

35
00:03:02,220 --> 00:03:05,220
‫มันจะทำให้นักแสดงอยู่ในที่เดียวกัน

36
00:03:05,310 --> 00:03:11,790
‫อย่างไรก็ตาม สิ่งที่น่าสนใจคือถ้าเราอัปเดตค่าภายในเวกเตอร์ของฉัน

37
00:03:11,790 --> 00:03:24,690
‫สิ่งที่เราทำได้คือบอกว่าเวกเตอร์ดอท z เท่ากับเวกเตอร์ดอท z บวกหนึ่ง

38
00:03:24,870 --> 00:03:31,260
‫สิ่งที่เรากำลังทำอยู่นี้คือ เรากำลังหาค่าที่อยู่ในเวกเตอร์ Z ของผม

39
00:03:31,260 --> 00:03:40,860
‫เรากำลังบวกหนึ่งเข้าไป จากนั้นเราก็นำผลลัพธ์ทั้งหมดนั้นมาใส่กลับเข้าไปในเวกเตอร์ดอท z

40
00:03:40,860 --> 00:03:41,640
‫ของฉัน

41
00:03:42,000 --> 00:03:49,020
‫ดังนั้นทุกครั้งที่เราผ่านเกมนี้และติ๊กถูกเรียกโดย unreal engine เวกเตอร์

42
00:03:49,170 --> 00:03:51,630
‫z ของฉันควรเพิ่มขึ้นหนึ่ง

43
00:03:51,690 --> 00:03:53,700
‫ลองดูว่าผลลัพธ์ของสิ่งนี้เป็นอย่างไร

44
00:03:53,700 --> 00:04:00,210
‫เราเข้าไปใน Unreal แล้วเราก็กดปุ่มคอมไพล์แล้วไปต่อและกดเล่น

45
00:04:00,210 --> 00:04:07,140
‫เราควรเห็นว่าชานชาลานั้นสูงขึ้น ลอยขึ้นไปในอากาศ เพราะฉันเพิ่มตำแหน่ง Z ของมัน

46
00:04:07,140 --> 00:04:11,100
‫ดังนั้นฉันจึงทำให้มันสูงขึ้นเรื่อย ๆ

47
00:04:11,100 --> 00:04:16,770
‫ฉันอยากให้คุณลองเปลี่ยน Y แทนการเปลี่ยน Z

48
00:04:16,770 --> 00:04:18,960
‫ดังนั้นเปลี่ยนบรรทัดรหัสที่ถูกต้อง

49
00:04:18,960 --> 00:04:21,840
‫คุณอาจต้องเปลี่ยนสถานที่มากกว่าหนึ่งแห่ง

50
00:04:21,840 --> 00:04:29,760
‫ปรับขนาดลูกบาศก์ของแพลตฟอร์มเพื่อให้เป็นแพลตฟอร์มที่ดีสำหรับคุณที่จะข้ามไป และดูว่าตอนนี้การอัปเดต Y แทนการอัปเดต

51
00:04:29,760 --> 00:04:35,160
‫Z ช่วยให้คุณข้ามไปที่แพลตฟอร์ม หยุดวิดีโอชั่วคราวแล้วเริ่มได้เลยหรือไม่

52
00:04:38,260 --> 00:04:38,770
‫ตกลง.

53
00:04:38,770 --> 00:04:39,470
‫ยินดีต้อนรับกลับ.

54
00:04:39,490 --> 00:04:42,250
‫มาดูโค้ดของ Visual Studio กัน

55
00:04:42,250 --> 00:04:49,510
‫และสิ่งที่เราอยากทำคือตั้งค่าเวกเตอร์ y เท่ากับเวกเตอร์ y บวกหนึ่ง

56
00:04:49,510 --> 00:04:54,880
‫มันจะเคลื่อนไปตามแกน Y แทนที่จะเป็นแกน Z

57
00:04:55,180 --> 00:05:01,120
‫จากนั้นเราจะตั้งค่าตำแหน่งทุกเฟรมเป็นผลลัพธ์ที่เก็บไว้ในตัวแปรเวกเตอร์ของฉัน

58
00:05:01,120 --> 00:05:05,050
‫ดังนั้นเราจะกลับไปที่ Unreal และทำให้แน่ใจว่าเรารวบรวม

59
00:05:05,050 --> 00:05:10,720
‫จากนั้นเราจะค้นหาโครงร่างสำหรับแท่นเคลื่อนที่และเลือก

60
00:05:10,720 --> 00:05:12,400
‫ไปที่บานหน้าต่างรายละเอียด

61
00:05:12,850 --> 00:05:20,950
‫และในที่นี้ เราต้องการให้โดยทั่วไปแล้ว ให้ดับเบิลคลิกบนแพลตฟอร์มเพื่อให้เรามองเห็นได้ จากนั้นเราต้องการที่จะขยายขนาดขึ้นอีกเล็กน้อย

62
00:05:20,950 --> 00:05:29,350
‫ผมจะใช้เครื่องมือมาตราส่วนด้วยปุ่ม R และจะเพิ่มมาตราส่วน Y และมาตราส่วน X และลดมาตราส่วน

63
00:05:29,350 --> 00:05:31,030
‫Z

64
00:05:31,030 --> 00:05:32,740
‫ดังนั้นแพลตฟอร์มของฉันจึงสั้นลงเล็กน้อย

65
00:05:32,740 --> 00:05:41,410
‫เช่นนั้นเราจะสามารถบันทึกการเล่นระดับและแพลตฟอร์มลอยไปทางขวาของฉัน

66
00:05:41,410 --> 00:05:45,070
‫ดังนั้นมันจึงใหญ่กว่าด้วย ซึ่งหมายความว่าฉันสามารถลุกขึ้นยืนได้

67
00:05:45,190 --> 00:05:45,970
‫และเราไปที่นั่น

68
00:05:45,970 --> 00:05:48,280
‫เรามีช่างเกมชิ้นแรกของเราแล้ว

69
00:05:48,280 --> 00:05:49,600
‫เรามีแท่นเคลื่อนที่

70
00:05:49,600 --> 00:05:55,330
‫มันไม่ได้ย้อนกลับและไปข้างหน้าว่าเราจะคิดเพิ่มเติมอีกเล็กน้อยเกี่ยวกับการบรรยายที่จะเกิดขึ้น

71
00:05:55,330 --> 00:06:00,400
‫แต่สำหรับตอนนี้ เราได้ใช้ฟังก์ชันเกมบางอย่างใน C++

72
00:06:00,400 --> 00:06:02,590
‫ฉันคิดว่าคุณควรภูมิใจในตัวเองมากในขณะนี้

73
00:06:02,590 --> 00:06:05,950
‫ตบหลังตัวเอง แล้วพบกันใหม่ในบทเรียนหน้า

