﻿1
00:00:04,110 --> 00:00:07,740
‫在这节课中, 我们将创建一个C++类｡

2
00:00:07,770 --> 00:00:11,310
‫现在我们需要一个类, 我们可以使用我们的兵｡

3
00:00:11,340 --> 00:00:15,720
‫现在我说的是兵, 复数, 因为在我们的博弈中会有两个不同的兵｡

4
00:00:15,720 --> 00:00:20,280
‫我们会用坦克在关卡中翻滚,

5
00:00:20,280 --> 00:00:24,870
‫还有一个炮塔, 它是我们的敌人, 这样我们就可以创建一个基本兵职业.

6
00:00:24,870 --> 00:00:30,050
‫它将具备坦克和炮塔共同的基本功能｡

7
00:00:30,060 --> 00:00:34,890
‫这样我们就可以创建两个子类, 坦克和炮塔｡

8
00:00:34,890 --> 00:00:40,890
‫所以这些将继承基本兵类的特性,

9
00:00:40,890 --> 00:00:47,820
‫这些是两个兵都要共享的, 比如有网格, 有胶囊组件和发射抛射物的能力｡

10
00:00:47,820 --> 00:00:51,840
‫现在, 我们将在本视频的后续视频中详细介绍所有这些功能｡

11
00:00:51,840 --> 00:00:56,280
‫我们只需要创建C++类并向其中添加一些基本变量｡

12
00:00:56,280 --> 00:01:00,990
‫这就是我们创建第一个C++类的动机｡

13
00:01:01,020 --> 00:01:06,450
‫现在, 我们准备开始为这个项目创建一些C++类｡

14
00:01:06,630 --> 00:01:13,410
‫现在, 您将在内容浏览器中看到, 这里没有用于C++类的文件夹｡

15
00:01:13,410 --> 00:01:22,140
‫这是因为我们还没有创建任何类, 但是我们现在就要编写, 这样我们就可以转到工具并选择新的C++类｡

16
00:01:22,140 --> 00:01:27,690
‫在这里我们要为要创建的类选择父类｡

17
00:01:27,690 --> 00:01:31,740
‫默认情况下, 我们有几个选项可供选择｡

18
00:01:31,740 --> 00:01:35,330
‫这是你们应该在之前的课上看到过的｡

19
00:01:35,330 --> 00:01:38,280
‫所以现在我们要做一些决定｡

20
00:01:38,370 --> 00:01:41,550
‫首先, 我们将选择哪个父类？

21
00:01:41,550 --> 00:01:42,210
‫我们有｡

22
00:01:42,210 --> 00:01:43,860
‫第一个是没有｡

23
00:01:43,860 --> 00:01:50,910
‫这基本上允许我们创建一个普通的C++类, 但是我们需要一些额外的功能｡

24
00:01:50,910 --> 00:01:55,440
‫首先, 我们希望能够在世界上放置该对象的一个实例｡

25
00:01:55,440 --> 00:01:58,230
‫所以我们不能用一个普通的C++类来实现｡

26
00:01:58,230 --> 00:02:05,250
‫我们可以用一个角色､ 一个棋子或一个演员来做这件事, 但其中哪一个最适合我们想做的事情呢？

27
00:02:05,400 --> 00:02:10,020
‫好吧, 我们需要退一步, 想想我们到底要创造什么｡

28
00:02:10,050 --> 00:02:17,460
‫我们正在尝试创建一个坦克, 我们可以控制和移动的水平和射击弹丸,

29
00:02:17,460 --> 00:02:21,570
‫使我们可以造成损害和所有的好东西在我们的资产文件夹｡

30
00:02:21,570 --> 00:02:28,770
‫提醒一下, 这里有一个网格文件夹, 还有坦克底座和坦克炮塔｡

31
00:02:28,800 --> 00:02:32,670
‫这是两个不同的网格, 将出现在我们的课堂上｡

32
00:02:32,670 --> 00:02:35,640
‫所以我们需要有网格的能力｡

33
00:02:35,640 --> 00:02:39,270
‫因此, 普通的C++类不具备这种能力｡

34
00:02:39,540 --> 00:02:41,670
‫让我们想一想｡

35
00:02:41,670 --> 00:02:44,250
‫我们应该使用哪个父类？

36
00:02:44,250 --> 00:02:48,780
‫首先你应该想到的是演员课｡

37
00:02:48,780 --> 00:02:52,320
‫现在, 演员阶级有能力被安置在世界上｡

38
00:02:52,320 --> 00:02:53,850
‫这是一个很好的开始｡

39
00:02:53,940 --> 00:02:57,750
‫它还具有可视表示的能力｡

40
00:02:57,750 --> 00:03:04,080
‫不管是网格还是其他什么东西, 只要你把它放在世界上, 它就可以被看到,

41
00:03:04,080 --> 00:03:07,650
‫只要你给予它一个网格或任何你想看到的东西｡

42
00:03:07,650 --> 00:03:13,260
‫现在从actor派生而来, 我们有了——类,

43
00:03:13,260 --> 00:03:19,830
‫并且——继承了actor类的所有这些特性, 除了它有额外的特性, 比如控制器拥有的能力｡

44
00:03:19,830 --> 00:03:25,980
‫关于控球的细节我们稍后会详细讨论, 但现在,

45
00:03:25,980 --> 00:03:30,060
‫你要明白这意味着球员可以控制.

46
00:03:30,060 --> 00:03:38,580
‫如果你按下鼠标键或键盘键, 就可以设置和配置它, 这样我们就可以移动它｡

47
00:03:38,580 --> 00:03:43,110
‫所以这听起来像是我们肯定会想要的坦克｡

48
00:03:43,110 --> 00:03:49,410
‫所以通过处理移动输入, ——听起来像是一个很好的选择,

49
00:03:49,410 --> 00:03:56,880
‫现在从——类派生出来, 这样就继承了——拥有的所有东西, 加上——从其父类继承的所有东西｡

50
00:03:56,880 --> 00:04:02,100
‫我们有一个角色类, 里面有一些角色特有的东西｡

51
00:04:02,460 --> 00:04:05,550
‫例如, 它有一个叫做角色移动组件的东西｡

52
00:04:05,550 --> 00:04:07,830
‫现在, 一个——没有这个｡

53
00:04:07,860 --> 00:04:13,980
‫角色移动组件为角色提供了额外的能力, 如不同的移动模式, 如飞行,

54
00:04:13,980 --> 00:04:19,440
‫游泳, 蹲下和其他特定于角色的东西｡

55
00:04:19,440 --> 00:04:28,410
‫角色类适用于两足动物角色, 但不适用于非两足动物角色, 即不是两条腿的生物｡

56
00:04:28,410 --> 00:04:34,050
‫虽然让一辆坦克在关卡上飞来飞去, 向它看到的一切投掷炸弹是非常棒的,

57
00:04:34,050 --> 00:04:38,940
‫但我们在这一节不会做任何复杂的事情｡

58
00:04:38,940 --> 00:04:41,040
‫我们只是要做一个可以滚动的坦克｡

59
00:04:41,040 --> 00:04:47,220
‫所以我们真的不需要一个角色移动组件或任何特殊的角色特定的东西｡

60
00:04:47,220 --> 00:04:52,380
‫因此, 我认为一个——是我们想要达到的完美目标｡

61
00:04:52,380 --> 00:05:01,230
‫所以我要挑战你们创建一个新的C++类, 创建一个基于的类, 并将这个新类命名为based｡

62
00:05:01,230 --> 00:05:03,600
‫现在, 您可以保留所有设置不变｡

63
00:05:03,670 --> 00:05:05,200
‫在类创建向导中｡

64
00:05:05,200 --> 00:05:13,030
‫您不需要更改文件路径或类似的操作, 因此暂停视频并为此项目创建第一个C++类｡

65
00:05:16,320 --> 00:05:18,090
‫所以回到这里的水平｡

66
00:05:18,120 --> 00:05:21,690
‫所以, 让我们转到工具并创建新的C++类｡

67
00:05:21,690 --> 00:05:24,260
‫我还没有创建C++类｡

68
00:05:24,270 --> 00:05:27,180
‫我刚刚结束, 回到刚才那张幻灯片｡

69
00:05:27,180 --> 00:05:33,480
‫现在我回来了, 我已经准备好为这个项目创建我的第一个C++类了,

70
00:05:33,480 --> 00:05:36,720
‫我将选择——每次你把鼠标悬停在这些上面的时候都会看到｡

71
00:05:36,720 --> 00:05:38,370
‫你可能以前见过这个｡

72
00:05:38,400 --> 00:05:45,660
‫我们会弹出一个工具提示, 它说, ——是所有参与者的基类, 玩家可以拥有它｡

73
00:05:45,660 --> 00:05:53,370
‫我知道这听起来很令人兴奋, 但我们要将其配置为可通过玩家的输入进行移动｡

74
00:05:53,370 --> 00:05:55,380
‫所以这是完美的｡

75
00:05:55,470 --> 00:06:01,020
‫它接着说, 它们是一个级别中玩家和生物的物理表示｡

76
00:06:01,020 --> 00:06:07,080
‫换句话说, 一旦我们创建了这个坦克, 它就代表我们是世界上的玩家｡

77
00:06:07,080 --> 00:06:07,950
‫很酷｡

78
00:06:08,040 --> 00:06:15,960
‫选择, 然后点击下一步, 它会显示这个类在项目中的路径, 你会看到它在源代码中,

79
00:06:15,960 --> 00:06:20,070
‫tune tank中.

80
00:06:20,070 --> 00:06:26,280
‫现在我们要给我们的新名字, 因为我的, 是个很可怕的名字, 而且很模糊.

81
00:06:26,280 --> 00:06:29,700
‫我们现在需要一些更具体的东西｡

82
00:06:29,700 --> 00:06:35,400
‫我们打算把它作为基类, 也就是说我们要从这个类派生类,

83
00:06:35,400 --> 00:06:38,340
‫这样我们就可以调用这个基类.

84
00:06:38,340 --> 00:06:43,080
‫现在, 我知道这并不比我的——好多少, 但是嘿, 它告诉我们这是一个基地——｡

85
00:06:43,080 --> 00:06:46,770
‫这是我们将来要派生子类的地方｡

86
00:06:46,770 --> 00:06:47,730
‫我们会讲到的｡

87
00:06:47,730 --> 00:06:52,320
‫但现在, 我们将调用这个基类——我们将单击“创建类.”

88
00:06:53,930 --> 00:06:54,590
‫好吧, 我会的

89
00:06:54,590 --> 00:06:58,340
‫因此, Visual Studio代码已经为我们打开了新类｡

90
00:06:58,340 --> 00:07:01,700
‫我们以H为基础, 以CP为基础｡

91
00:07:01,730 --> 00:07:09,890
‫现在, 我们可以通过单击Explorer图标关闭此侧边栏, 然后查看V的代码为我们生成了什么｡

92
00:07:09,890 --> 00:07:16,880
‫因此, 默认情况下, 我们会获得类构造函数以及三个函数开始､ play､ tick和set up

93
00:07:16,880 --> 00:07:18,380
‫player输入组件｡

94
00:07:18,410 --> 00:07:21,980
‫现在你应该熟悉了开始, 播放和勾选评论在这里｡

95
00:07:21,980 --> 00:07:23,300
‫解释他们的工作｡

96
00:07:23,330 --> 00:07:28,790
‫设置玩家输入组件是棋子获得的东西,

97
00:07:28,790 --> 00:07:35,690
‫这个功能允许我们处理输入, 如从键盘键或鼠标点击, 我们将在未来的视频中了解更多关于基带的工作原理｡

98
00:07:35,840 --> 00:07:42,740
‫CP这些函数是为我们定义的, 但它们非常简单, 在未来的视频中也不会改变｡

99
00:07:42,740 --> 00:07:49,370
‫因此, 在本视频中, 我们创建了第一个C++类, 下一个视频将讨论组件,

100
00:07:49,370 --> 00:07:51,770
‫以及为什么我们要向新类中添加一些组件｡

101
00:07:51,800 --> 00:07:52,790
‫我很快就会见到你的｡

