﻿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:17,010
‫我们实际上是要通过理解游戏循环以及C++中的tick函数与它的关系来推动这个平台｡

4
00:00:17,010 --> 00:00:19,260
‫让我们深入了解一下｡

5
00:00:19,410 --> 00:00:24,960
‫到目前为止, 我们一直忽略了这个函数, tick函数｡

6
00:00:24,960 --> 00:00:29,430
‫我们已经把一切都放在开始发挥, 因为这是我们已经在蓝图之前使用｡

7
00:00:29,430 --> 00:00:32,400
‫但让我们稍微了解一下这个tick函数｡

8
00:00:32,400 --> 00:00:40,620
‫要理解tick, 我们需要理解游戏循环的概念, 这是大多数游戏引擎构建引擎的方式｡

9
00:00:40,620 --> 00:00:46,170
‫它的工作方式是, 首先, 游戏引擎会从玩家那里获取输入｡

10
00:00:46,170 --> 00:00:52,290
‫所以无论当前发生了什么, 无论是按下空格键还是W键,

11
00:00:52,290 --> 00:01:00,360
‫无论鼠标移动了一点点, 无论鼠标按钮是按下的, 所有这些都将被游戏引擎接收并处理｡

12
00:01:00,390 --> 00:01:05,640
‫那么接下来的事情就是信息将被用来更新游戏状态｡

13
00:01:05,640 --> 00:01:10,560
‫也许球员会向前移动一点, 也许一个球会反弹,

14
00:01:10,560 --> 00:01:17,340
‫所有这些东西都会被计算出来, 物理引擎会运行, 所有这些我们在以前的比赛中看到的伟大的东西｡

15
00:01:17,340 --> 00:01:21,930
‫第三步, 游戏引擎会根据游戏状态显示,

16
00:01:21,930 --> 00:01:27,870
‫玩家在这里, 摄像机在这里, 球在那里, 然后将其呈现到显示器上｡

17
00:01:27,870 --> 00:01:34,020
‫它会把它从一组数字变成一个图像显示在你的屏幕上｡

18
00:01:34,140 --> 00:01:43,290
‫现在, 该图像被称为帧, 帧是构成视频的一系列图片中的单个图片｡

19
00:01:43,350 --> 00:01:50,730
‫现在, 您的计算机可能每秒能够渲染很多帧, 也可能渲染更少的帧｡

20
00:01:50,730 --> 00:01:53,430
‫但这被称为帧速率｡

21
00:01:53,430 --> 00:01:58,710
‫您的计算机每秒可以通过游戏循环多少帧？

22
00:01:58,710 --> 00:02:03,030
‫它处理输入､ 更新状态和呈现状态的频率是多少？

23
00:02:03,210 --> 00:02:11,040
‫这是每秒的帧数, 在虚幻中, 我们使用tick函数来帮助我们执行游戏循环的中间步骤,

24
00:02:11,040 --> 00:02:14,880
‫以帮助我们更新游戏的状态｡

25
00:02:14,880 --> 00:02:20,280
‫它是一个函数, 每个帧都会调用它, 它存在于蓝图和事件中｡

26
00:02:20,280 --> 00:02:27,750
‫所以你得到了滴答事件, 它基本上允许你做一些事情来更新你的游戏每一帧｡

27
00:02:27,760 --> 00:02:33,720
‫在我们的例子中, 我们要做的是让它移动我们的平台｡

28
00:02:33,720 --> 00:02:35,130
‫那么我们该怎么做呢？

29
00:02:35,130 --> 00:02:43,020
‫如果我们把演员的位置开始播放的位置移走,

30
00:02:43,020 --> 00:02:51,660
‫然后用tick来更新, 这在一开始不会有太大的效果, 因为我们会不断地把位置更新到相同的位置.

31
00:02:51,660 --> 00:03:00,000
‫如果我们设置演员位置, 我的向量, 然后是分号, 这只是每一帧, 每一次迭代,

32
00:03:00,000 --> 00:03:02,190
‫通过游戏循环｡

33
00:03:02,220 --> 00:03:05,220
‫这只会把演员放在同一个地方｡

34
00:03:05,310 --> 00:03:11,790
‫然而, 有趣的是, 如果我们更新向量中的值｡

35
00:03:11,790 --> 00:03:24,690
‫所以我们可以说向量z等于向量z加1｡

36
00:03:24,870 --> 00:03:31,260
‫所以我们现在要做的就是取向量Z的值｡

37
00:03:31,260 --> 00:03:41,640
‫我们把它加1, 然后我们把整个结果放回向量z中.

38
00:03:42,000 --> 00:03:51,630
‫所以每次我们通过这个游戏循环, tick被unreal引擎调用的时候, 我的向量z应该增加1.

39
00:03:51,690 --> 00:03:53,700
‫让我们看看结果是什么｡

40
00:03:53,700 --> 00:04:00,210
‫我们进入Unreal, 点击编译按钮, 然后点击播放｡

41
00:04:00,210 --> 00:04:07,140
‫我们应该看到平台在上升, 飘向空中因为我增加了它的Z位置,

42
00:04:07,140 --> 00:04:11,100
‫所以我让它越来越高｡

43
00:04:11,100 --> 00:04:16,770
‫所以我想让你们试着改变Y而不是Z｡

44
00:04:16,770 --> 00:04:18,960
‫因此, 请更改正确的代码行｡

45
00:04:18,960 --> 00:04:21,840
‫你可能需要改变一些不止一个地方｡

46
00:04:21,840 --> 00:04:29,760
‫调整平台立方体的大小, 使它成为一个很好的平台, 让你跳上, 看看现在更新Y而不是更新Z是否允许你跳上平台,

47
00:04:29,760 --> 00:04:35,160
‫暂停视频, 并有一个去｡

48
00:04:38,260 --> 00:04:38,770
‫好吧, 我会的

49
00:04:38,770 --> 00:04:39,470
‫欢迎回来｡

50
00:04:39,490 --> 00:04:42,250
‫因此, 让我们深入研究Visual Studio代码｡

51
00:04:42,250 --> 00:04:49,510
‫我们要做的是, 让向量y等于向量y加1｡

52
00:04:49,510 --> 00:04:54,880
‫所以这将是沿着Y轴而不是Z轴移动它｡

53
00:04:55,180 --> 00:05:01,120
‫然后我们将每一帧的位置设置为存储在my向量变量中的结果｡

54
00:05:01,120 --> 00:05:05,050
‫所以我们要回到Unreal并确保我们编译｡

55
00:05:05,050 --> 00:05:10,720
‫然后, 我们将搜索移动平台的轮廓并选择它｡

56
00:05:10,720 --> 00:05:12,400
‫转到详细信息窗格｡

57
00:05:12,850 --> 00:05:20,950
‫在这里, 我们要双击该平台, 这样我们就可以看到它, 然后我们要将其扩展一点｡

58
00:05:20,950 --> 00:05:31,030
‫我将使用缩放工具和R键, 增加Y轴和X轴的缩放比例, 并减少Z轴的缩放比例｡

59
00:05:31,030 --> 00:05:32,740
‫所以我的讲台要短一点｡

60
00:05:32,740 --> 00:05:41,410
‫所以我们还是保存水平击球的打法吧平台会飘到我的右边.

61
00:05:41,410 --> 00:05:45,070
‫所以它也更大了, 这意味着我可以站在上面｡

62
00:05:45,190 --> 00:05:45,970
‫好了

63
00:05:45,970 --> 00:05:48,280
‫我们已经有了第一个游戏机制｡

64
00:05:48,280 --> 00:05:49,600
‫我们有一个移动平台｡

65
00:05:49,600 --> 00:05:55,330
‫我们不会在后面的课上再多讲一点｡

66
00:05:55,330 --> 00:06:00,400
‫但现在, 我们已经用C++实现了一些游戏功能｡

67
00:06:00,400 --> 00:06:02,590
‫我想你现在应该为自己感到骄傲｡

68
00:06:02,590 --> 00:06:05,950
‫拍拍你自己的背, 我们下节课再见｡

