﻿1
00:00:04,460 --> 00:00:05,240
‫Xin chào và chào mừng.

2
00:00:05,240 --> 00:00:10,250
‫Trong bài giảng này, chúng tôi sẽ tạo ra một chế độ trò chơi di động sát thủ, đây sẽ chỉ

3
00:00:10,250 --> 00:00:17,270
‫là một trong những chế độ trò chơi khả dĩ mà chúng tôi có thể tạo ra do có một phương pháp bị giết ảo có thể được gọi

4
00:00:17,270 --> 00:00:19,940
‫trên bất kỳ chế độ chơi mà chúng tôi muốn.

5
00:00:19,970 --> 00:00:24,560
‫Hãy đi sâu vào và xem chúng ta sẽ triển khai phương pháp ảo này như thế nào.

6
00:00:25,540 --> 00:00:28,640
‫Vì vậy, chúng tôi muốn trò chơi của chúng tôi có thể kết thúc.

7
00:00:28,660 --> 00:00:29,760
‫Trò chơi kết thúc có ý nghĩa gì?

8
00:00:29,770 --> 00:00:34,990
‫Nó có nghĩa là chúng ta rơi vào trạng thái nào đó mà chúng ta là người duy nhất hoặc chúng ta đã mất.

9
00:00:34,990 --> 00:00:37,240
‫Chúng tôi thông báo cho người chơi bằng một số giao diện người dùng.

10
00:00:37,270 --> 00:00:40,810
‫Chúng tôi cung cấp cho họ tùy chọn có thể khởi động lại và phát lại.

11
00:00:41,050 --> 00:00:43,020
‫Một cái gì đó dọc theo những dòng đó.

12
00:00:43,030 --> 00:00:46,900
‫Bây giờ các lớp liên quan đến điều này thường là một chế độ chơi.

13
00:00:46,900 --> 00:00:52,420
‫Chế độ trò chơi chịu trách nhiệm quyết định các quy tắc về trò chơi, chẳng hạn như ai thắng và ai thua.

14
00:00:52,780 --> 00:00:56,470
‫Và vì điều đó, chúng ta sẽ cần biết ai đang bị giết.

15
00:00:56,470 --> 00:01:02,500
‫Vì vậy, chúng tôi sẽ có phương pháp ảo này ở đây được gọi là Pawn Killed, sẽ được gọi từ con

16
00:01:02,500 --> 00:01:09,370
‫tốt của người bắn súng của chúng tôi khi nó chết, cho dù đó có phải là AI hay chính người chơi đang thực hiện cái chết.

17
00:01:10,360 --> 00:01:15,310
‫Và hơn nữa, tôi muốn thêm một chút phức tạp ở đây, đó là chúng tôi sẽ có các chế độ chơi khác

18
00:01:15,310 --> 00:01:18,550
‫nhau bắt nguồn từ chế độ trò chơi bắn súng chính của chúng tôi.

19
00:01:18,550 --> 00:01:20,320
‫Họ sẽ thực hiện chế độ chơi đó.

20
00:01:20,320 --> 00:01:21,580
‫Đó là ý nghĩa của mũi tên ở đây.

21
00:01:21,580 --> 00:01:25,840
‫Nó thường hơi phản trực giác về cách mũi tên đi, nhưng hãy giết tất cả chúng.

22
00:01:25,840 --> 00:01:33,310
‫Chế độ trò chơi kế thừa từ chế độ trò chơi bắn súng và nó ghi đè những con tốt bị giết để đếm và quyết định khác

23
00:01:33,310 --> 00:01:35,770
‫nhau về các quy tắc của trò chơi.

24
00:01:35,770 --> 00:01:41,980
‫Vì vậy, đó là lý do tại sao tôi muốn đặt một phương pháp giết con tốt ảo trong chế độ trò chơi bắn súng mẹ và sau đó

25
00:01:42,130 --> 00:01:48,130
‫triển khai hoặc ghi đè nó một lần nữa trong chế độ trò chơi giết tất cả, đây sẽ là chế độ trò chơi mà chúng tôi

26
00:01:48,130 --> 00:01:49,570
‫đang triển khai cho chính mình.

27
00:01:49,570 --> 00:01:54,490
‫Và bạn có thể chọn thực hiện các chế độ chơi khác nhau trong đó có thể bạn chỉ muốn tiêu diệt một số lượng nhất

28
00:01:54,490 --> 00:01:58,450
‫định kẻ thù trong cấp độ hơn là tất cả chúng hoặc thứ gì đó dọc theo các đường đó.

29
00:01:58,450 --> 00:02:00,670
‫Có thể là một lá cờ nắm bắt, một cái gì đó khác nhau.

30
00:02:01,900 --> 00:02:08,560
‫Nhưng về cơ bản những gì sắp xảy ra là game bắn súng - sẽ tìm thấy chế độ chơi có chế độ

31
00:02:08,560 --> 00:02:13,060
‫chơi game bắn súng kiểu và người ta sẽ gọi nó là - bị giết.

32
00:02:13,060 --> 00:02:19,060
‫Và sau đó tùy thuộc vào bất kỳ triển khai nào thực sự có ở đó, nó sẽ chuyển sang

33
00:02:19,060 --> 00:02:21,250
‫triển khai thông qua ghi đè.

34
00:02:21,910 --> 00:02:28,390
‫Bây giờ, một sự phức tạp khác ở đây là logic giao diện người dùng của chúng tôi và logic khởi động lại thực sự là điều gì

35
00:02:28,390 --> 00:02:35,200
‫đó nên xảy ra trong giao diện người dùng bộ điều khiển người chơi nói chung là mục đích của người chơi chứ không phải là thứ toàn cầu như

36
00:02:35,200 --> 00:02:36,310
‫chế độ trò chơi.

37
00:02:36,340 --> 00:02:42,850
‫Điều này đặc biệt đúng trong các trò chơi có nhiều người chơi vì chế độ trò chơi không thực sự tồn tại trên máy của

38
00:02:42,850 --> 00:02:45,160
‫người chơi, nó chỉ tồn tại trên máy chủ.

39
00:02:45,160 --> 00:02:49,270
‫Vì vậy, bất kỳ nội dung giao diện người dùng nào sẽ diễn ra trong bộ điều khiển trình phát.

40
00:02:49,540 --> 00:02:52,690
‫Đó là một sự phức tạp mà chúng ta không cần phải lo lắng vì đây không phải

41
00:02:52,690 --> 00:02:57,430
‫là một trò chơi nhiều người chơi, nhưng vẫn tốt để sử dụng các lớp cho những gì chúng được mong đợi sẽ được sử dụng trong Unreal.

42
00:02:57,880 --> 00:03:04,750
‫Vì vậy, trình điều khiển trình phát, lớp điều khiển trình phát gốc thực tế có một phương thức ảo được gọi là trò chơi đã kết thúc

43
00:03:04,750 --> 00:03:12,610
‫đặc biệt cho mục đích này để chế độ trò chơi có thể gọi phương thức này và chúng tôi có thể triển khai nó trong bộ điều khiển trình phát game

44
00:03:12,610 --> 00:03:17,770
‫bắn súng của riêng mình để thực hiện giao diện người dùng, khởi động lại, tất cả những thứ đó.

45
00:03:17,830 --> 00:03:23,590
‫Nhưng chúng tôi sẽ cần gọi nó từ chế độ trò chơi của mình khi chúng tôi đã quyết định rằng trò chơi kết thúc.

46
00:03:23,590 --> 00:03:28,270
‫Vì vậy, chúng tôi sẽ gọi trò chơi ảo đã kết thúc trên bộ điều khiển trình phát gốc.

47
00:03:28,390 --> 00:03:33,910
‫Và sau đó bởi vì bộ điều khiển trình phát gốc đó thực sự là một game bắn súng, bộ điều khiển người chơi sẽ

48
00:03:33,910 --> 00:03:35,290
‫chuyển hướng trở lại và gọi.

49
00:03:35,290 --> 00:03:36,130
‫Trò chơi này đã kết thúc.

50
00:03:36,130 --> 00:03:42,040
‫Vì vậy, có vẻ như một tuyến đường mạch mà chúng tôi sẽ gọi từ người chơi game bắn súng của chúng tôi thông qua chế độ trò chơi bắn súng

51
00:03:42,040 --> 00:03:46,570
‫sang chế độ trò chơi sát thủ hơn đến bộ điều khiển người chơi đến bộ điều khiển người chơi bắn súng.

52
00:03:46,570 --> 00:03:52,360
‫Nhưng điều này cho phép chúng tôi linh hoạt hơn rất nhiều, chúng tôi có thể kết hợp và kết hợp các bộ điều khiển trình phát khác nhau sẽ

53
00:03:52,360 --> 00:03:55,900
‫hiển thị giao diện người dùng theo những cách khác nhau, ở các cấp độ khác nhau.

54
00:03:55,900 --> 00:04:00,130
‫Chúng tôi có thể kết hợp và kết hợp các chế độ chơi khác nhau sẽ hoạt động theo những cách khác nhau và

55
00:04:00,130 --> 00:04:02,260
‫đó là lý do để tôi kiến trúc nó theo cách này.

56
00:04:02,260 --> 00:04:07,750
‫Đó là một chút quá mức cần thiết đối với dự án của chúng tôi, nhưng nó cho bạn thấy cách điều này có thể mở rộng sang các

57
00:04:07,750 --> 00:04:11,970
‫dự án khác với các chế độ trò chơi Capture the Flag và các loại trình điều khiển trình phát khác nhau.

58
00:04:11,980 --> 00:04:14,500
‫Vì vậy, chúng ta hãy bắt đầu triển khai nó.

59
00:04:14,530 --> 00:04:18,040
‫Chúng ta sẽ bắt đầu và trước hết, hãy tìm một chế độ chơi theo lộ trình.

60
00:04:18,040 --> 00:04:22,330
‫Đã có một cái được tạo vì tôi bắt đầu từ một dự án C ++.

61
00:04:22,330 --> 00:04:28,120
‫Chúng tôi có cơ sở chế độ trò chơi bắn súng đơn giản này và những gì tôi muốn làm ở đây

62
00:04:28,120 --> 00:04:35,800
‫là tạo một chức năng công cộng sẽ trả lại giá trị vô hiệu và nó sẽ - bị giết và chúng tôi sẽ phải vượt qua - đó

63
00:04:35,830 --> 00:04:37,480
‫đã bị giết ở đây.

64
00:04:37,480 --> 00:04:42,400
‫Vì vậy, nó sẽ là một - ngôi sao được gọi là - bị giết như vậy.

65
00:04:42,400 --> 00:04:46,720
‫Và ngay từ đầu, chúng tôi sẽ biến nó thành một phương thức ảo và chúng tôi sẽ tiếp

66
00:04:46,720 --> 00:04:50,770
‫tục tạo ra một triển khai cơ bản mà về cơ bản không làm gì ở đây.

67
00:04:50,770 --> 00:04:52,930
‫Sau đó, chúng ta sẽ tạo một lớp con.

68
00:04:52,930 --> 00:05:00,010
‫Vì vậy, lớp C ++ mới, sẽ hiển thị tất cả các lớp và chúng tôi sẽ tìm kiếm game bắn súng, cơ sở chế độ trò chơi bắn súng

69
00:05:00,010 --> 00:05:02,230
‫đơn giản làm lớp cơ sở của chúng tôi.

70
00:05:02,230 --> 00:05:12,010
‫Và chúng tôi sẽ gọi đây là chế độ chơi giết tất cả các trò chơi như vậy và tiếp tục và tạo ra lớp đó.

71
00:05:12,010 --> 00:05:18,100
‫Sau đó, khi điều đó đã hoàn thành, tôi chỉ muốn chuyển qua một giây và chuyển đến nhân vật game bắn súng của chúng tôi.

72
00:05:18,130 --> 00:05:23,620
‫CP Và bạn có thể thấy ở đây, chúng tôi đã chết trong phương pháp nhận sát thương.

73
00:05:23,830 --> 00:05:30,490
‫Bây giờ nếu điều này đã chết, những gì tôi muốn làm là nắm giữ chế độ trò chơi của chúng tôi và gọi là -

74
00:05:30,490 --> 00:05:31,180
‫bị giết.

75
00:05:31,210 --> 00:05:38,470
‫Vì vậy, cách chúng tôi làm điều này là chúng tôi bắt đầu với việc gọi để có được thế giới để có được chế độ trò chơi, sau

76
00:05:38,470 --> 00:05:40,690
‫đó là chế độ trò chơi xác thực.

77
00:05:40,690 --> 00:05:46,750
‫Và sau đó những gì chúng tôi muốn làm là để chế độ chơi này thuộc loại chính xác, đó là chế độ chơi đơn giản, gốc, chế độ

78
00:05:46,750 --> 00:05:52,150
‫trò chơi bắn súng đơn giản cho phép chúng tôi sau đó chuyển đổi nhân vật này, sử dụng nó với các chế độ chơi

79
00:05:52,150 --> 00:05:54,910
‫khác nhau như như nắm bắt các chế độ trò chơi cờ.

80
00:05:55,060 --> 00:06:01,540
‫Vì vậy, cách chúng ta có thể làm điều này, chúng ta có thể sử dụng các dấu ngoặc nhọn ngay trong chế độ nhận tất cả trò chơi ngay

81
00:06:01,540 --> 00:06:07,900
‫tại đây và chúng ta sẽ thực hiện một chế độ chơi game bắn súng đơn giản và chúng ta sẽ cần đưa nó vào ở trên cùng.

82
00:06:08,320 --> 00:06:15,270
‫Vì vậy, băm bao gồm chế độ chơi game bắn súng đơn giản đi.

83
00:06:15,550 --> 00:06:18,070
‫Vì vậy, tôi đã không hoàn toàn nhận được tên cả lớp phải không?

84
00:06:18,070 --> 00:06:18,700
‫Tôi nghĩ vậy.

85
00:06:18,700 --> 00:06:22,180
‫Nó sẽ là một cơ sở chế độ chơi game bắn súng đơn giản.

86
00:06:22,360 --> 00:06:23,710
‫Đó là những gì chúng tôi đang cố gắng đạt được.

87
00:06:24,130 --> 00:06:29,290
‫Và chúng ta có thể tiếp tục và lưu trữ nó trong một con trỏ biến, hãy gọi nó là chế độ trò chơi.

88
00:06:29,290 --> 00:06:35,860
‫Và sau đó những gì chúng tôi muốn làm là trên dòng mới này, chúng tôi có thể muốn kiểm tra xem chúng tôi đã có cái này và nó không phải là

89
00:06:35,860 --> 00:06:36,790
‫một con trỏ null.

90
00:06:36,790 --> 00:06:40,630
‫Vì vậy, chế độ trò chơi không bằng một con trỏ null.

91
00:06:40,630 --> 00:06:47,680
‫Và sau đó nếu nó không bằng một con trỏ null, đó là nơi chúng ta muốn gọi chế độ trò chơi là con tốt mũi tên

92
00:06:47,680 --> 00:06:50,590
‫bị giết và con tốt bị giết là như vậy?

93
00:06:50,590 --> 00:06:55,150
‫Vì vậy, bây giờ chế độ trò chơi nhận thức được một con tốt đã bị giết.

94
00:06:55,170 --> 00:07:00,460
‫Thử thách nhỏ nhỏ để bạn ghi đè chế độ chơi tiêu diệt tất cả chúng để bạn có thể.

95
00:07:00,580 --> 00:07:06,880
‫Đăng xuất khi - bị giết và đặt chế độ đó làm chế độ chơi mặc định trong bản đồ của bạn.

96
00:07:07,210 --> 00:07:09,680
‫Vì vậy, hy vọng bạn đã có một thử thách nhỏ nhỏ đó.

97
00:07:09,700 --> 00:07:11,800
‫Chúng tôi sẽ tiếp tục và thực hiện.

98
00:07:11,800 --> 00:07:17,740
‫Vì vậy, tôi sẽ làm điều này bằng cách sao chép phần công khai của cơ sở chế độ trò chơi bắn súng đơn giản của chúng tôi và thật

99
00:07:17,740 --> 00:07:19,540
‫khó để theo dõi tất cả những thứ này.

100
00:07:19,540 --> 00:07:24,070
‫Sau đó, chúng tôi sẽ đi đến cơ sở tiêu diệt tất cả chúng của chế độ chơi, kế thừa từ nó.

101
00:07:24,310 --> 00:07:31,360
‫Và chúng tôi sẽ dán phương thức ảo vào và chúng tôi sẽ thêm từ khóa ghi đè để đảm bảo rằng chúng tôi ghi

102
00:07:31,360 --> 00:07:33,850
‫đè phương thức này một cách chính xác.

103
00:07:34,730 --> 00:07:39,620
‫Sau đó, tôi sẽ tạo một triển khai trong C ++ cho cơ sở chế độ trò chơi KML của chúng tôi.

104
00:07:40,100 --> 00:07:42,980
‫Đây là nơi chúng ta sẽ nhận được thông báo nhật ký đó.

105
00:07:42,980 --> 00:07:48,430
‫Và chỉ cần cực kỳ cẩn thận, chúng tôi biết không có gì trong quá trình thực hiện, nhưng bạn không bao giờ biết.

106
00:07:48,440 --> 00:07:52,130
‫Mọi thứ có thể thay đổi sau này và chúng ta có thể dính bom.

107
00:07:52,140 --> 00:07:55,250
‫Vì vậy, chúng tôi muốn giết một con tốt.

108
00:07:56,310 --> 00:07:59,160
‫Siêu - bị giết với - bị giết.

109
00:07:59,190 --> 00:08:00,060
‫Có ý nghĩa.

110
00:08:00,330 --> 00:08:09,630
‫Và sau đó, chúng tôi muốn bạn đăng nhập ở đây về cơ bản nói rằng a - đã bị giết và chúng tôi có thể xem liệu điều đó có

111
00:08:09,630 --> 00:08:17,940
‫hoạt động hay không bằng cách chuyển sang Unreal và biên dịch, sau đó chuyển đến mục blueprint trên thanh công cụ và chọn trong cài đặt

112
00:08:17,940 --> 00:08:23,250
‫dự án chế độ chơi mặc định của chúng tôi mà chúng tôi muốn trở thành.

113
00:08:23,250 --> 00:08:29,040
‫Nếu chúng tôi chọn chế độ trò chơi, lớp cơ sở, chúng tôi muốn nó là chế độ trò chơi dựa trên KML.

114
00:08:29,040 --> 00:08:31,770
‫Về cơ bản, hãy tiếp tục và làm điều đó.

115
00:08:31,770 --> 00:08:35,640
‫Trên thực tế, đó không hoàn toàn là những gì chúng tôi muốn chúng tôi làm nếu chúng tôi đi và chọn.

116
00:08:35,640 --> 00:08:44,160
‫Chúng tôi muốn nó thực sự là một đứa con của bản thiết kế và chúng tôi đã có một đứa con của bản thiết kế có rất nhiều thứ

117
00:08:44,160 --> 00:08:45,060
‫được thiết lập.

118
00:08:45,060 --> 00:08:47,820
‫Vì vậy, chúng ta hãy làm một công việc nuôi dạy con cái ở đó.

119
00:08:48,390 --> 00:08:54,090
‫Chúng ta sẽ đi đến gốc rễ, chúng ta sẽ tìm thấy chế độ chơi game bắn súng BP, mà chúng ta đã có ở đây.

120
00:08:54,240 --> 00:09:02,790
‫Chúng tôi sẽ đổi tên BP này, giết tất cả chế độ trò chơi và sau đó chúng tôi có thể mở nó lên, gắn cửa sổ, mở trình

121
00:09:02,790 --> 00:09:10,500
‫chỉnh sửa bản thiết kế đầy đủ, đi tới cài đặt lớp và thay đổi chế độ cha thành chế độ trò chơi KML, về cơ bản

122
00:09:10,500 --> 00:09:11,940
‫là C ++ .

123
00:09:12,030 --> 00:09:18,030
‫Và theo cách đó, chúng ta sẽ chạy mã chính xác nếu chúng ta đi đến thông báo của mình trong nhật ký

124
00:09:18,030 --> 00:09:25,740
‫đầu ra của mình và nhấn phát và sau đó giết một nhân vật, một nhân vật mà chúng ta gặp sự cố dường như không được thiết lập đúng.

125
00:09:25,740 --> 00:09:35,010
‫Vì vậy, nếu chúng ta quay lại mặc định lớp của mình và thay đổi lớp mặc định thành nhân vật bắn súng BP, điều

126
00:09:35,010 --> 00:09:36,900
‫đó sẽ chính xác.

127
00:09:36,900 --> 00:09:39,330
‫Lưu và biên dịch đề phòng trường hợp sai.

128
00:09:39,330 --> 00:09:42,000
‫Và sau đó kiểm tra bản thiết kế của tôi thả xuống ở đây.

129
00:09:42,000 --> 00:09:44,700
‫Nó được chọn chế độ trò chơi KML, chế độ C ++.

130
00:09:44,700 --> 00:09:49,530
‫Vì vậy, chúng tôi thực sự muốn chọn một bản thiết kế ở đây và tiếp tục và nhấn chơi.

131
00:09:49,530 --> 00:09:50,850
‫Bây giờ chúng tôi đã cầm đồ.

132
00:09:50,850 --> 00:09:57,330
‫Chúng ta có thể tiếp tục và giết tên này và bạn có thể thấy rằng một con tốt đã bị giết được in thông báo nhật ký.

133
00:09:57,330 --> 00:10:00,090
‫Vì vậy, điều đó đang hoạt động tuyệt vời.

134
00:10:00,240 --> 00:10:05,580
‫Bây giờ trong bài giảng tiếp theo, chúng ta sẽ xem xét phần thứ hai của phần này,

135
00:10:05,580 --> 00:10:12,870
‫trò chơi đang gọi là đã kết thúc khi chúng tôi thực sự muốn kết thúc trò chơi và có thể bắt đầu lại từ đó.

136
00:10:12,960 --> 00:10:15,930
‫Vì vậy, tôi sẽ gặp bạn trong bài giảng đó.

