All language subtitles for Godot4的终极介绍.1243397733.zh-CN
Afrikaans
Akan
Albanian
Amharic
Arabic
Armenian
Azerbaijani
Basque
Belarusian
Bemba
Bengali
Bihari
Bosnian
Breton
Bulgarian
Cambodian
Catalan
Cebuano
Cherokee
Chichewa
Chinese (Simplified)
Chinese (Traditional)
Corsican
Croatian
Czech
Danish
Dutch
English
Esperanto
Estonian
Ewe
Faroese
Filipino
Finnish
French
Frisian
Ga
Galician
Georgian
German
Greek
Guarani
Gujarati
Haitian Creole
Hausa
Hawaiian
Hebrew
Hindi
Hmong
Hungarian
Icelandic
Igbo
Indonesian
Interlingua
Irish
Italian
Japanese
Javanese
Kannada
Kazakh
Kinyarwanda
Kirundi
Kongo
Korean
Krio (Sierra Leone)
Kurdish
Kurdish (Soranî)
Kyrgyz
Laothian
Latin
Latvian
Lingala
Lithuanian
Lozi
Luganda
Luo
Luxembourgish
Macedonian
Malagasy
Malay
Malayalam
Maltese
Maori
Marathi
Mauritian Creole
Moldavian
Mongolian
Myanmar (Burmese)
Montenegrin
Nepali
Nigerian Pidgin
Northern Sotho
Norwegian
Norwegian (Nynorsk)
Occitan
Oriya
Oromo
Pashto
Persian
Polish
Portuguese (Brazil)
Portuguese (Portugal)
Punjabi
Quechua
Romanian
Romansh
Runyakitara
Russian
Samoan
Scots Gaelic
Serbian
Serbo-Croatian
Sesotho
Setswana
Seychellois Creole
Shona
Sindhi
Sinhalese
Slovak
Slovenian
Somali
Spanish
Spanish (Latin American)
Sundanese
Swahili
Swedish
Tajik
Tamil
Tatar
Telugu
Thai
Tigrinya
Tonga
Tshiluba
Tumbuka
Turkish
Turkmen
Twi
Uighur
Ukrainian
Urdu
Uzbek
Vietnamese
Welsh
Wolof
Xhosa
Yiddish
Yoruba
Zulu
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
0
00:00:34,530 --> 00:00:35,370
在这个视频中
1
00:00:35,370 --> 00:00:37,730
您将学习 Godot 游戏引擎的基础知识
2
00:00:37,730 --> 00:00:39,130
我们将启动引擎
3
00:00:39,130 --> 00:00:41,800
程序设置及其关键概念
4
00:00:41,930 --> 00:00:42,570
从那里
5
00:00:42,570 --> 00:00:45,530
我们将涵盖广泛的主题,例如轮胎图
6
00:00:45,530 --> 00:00:46,770
动画播放器
7
00:00:46,770 --> 00:00:50,500
灯光粒子效果着色器和用户界面
8
00:00:50,730 --> 00:00:53,170
我们还将涵盖更高级的主题,例如
9
00:00:53,170 --> 00:00:55,470
骨骼动画和寻路
10
00:00:55,800 --> 00:00:58,200
如果这些词对你来说没有任何意义,不用担心
11
00:00:58,200 --> 00:01:00,530
我将从头开始解释一切
12
00:01:00,700 --> 00:01:02,400
无论哪种方式,在视频结束时
13
00:01:02,400 --> 00:01:03,770
你应该有一个强大的
14
00:01:03,770 --> 00:01:04,930
了解如何创建
15
00:01:04,930 --> 00:01:07,200
基本上古杜尔中的任何 2D 游戏
17 号
16
00:01:07,300 --> 00:01:08,870
你也会有一个非常好的
17
00:01:08,870 --> 00:01:09,930
基础
18
00:01:09,930 --> 00:01:11,270
3D游戏
19
00:01:11,470 --> 00:01:12,270
在我们开始之前
20
00:01:12,300 --> 00:01:14,530
强烈感谢该视频的赞助商
21
00:01:14,600 --> 00:01:16,070
不是过去的事
22
00:01:16,130 --> 00:01:17,170
制作游戏时
23
00:01:17,200 --> 00:01:19,300
你最终会得到很多数据
24
00:01:19,300 --> 00:01:22,000
支持这一切是一场噩梦
25
00:01:22,300 --> 00:01:24,370
您想从任何地方访问您的数据
26
00:01:24,370 --> 00:01:25,970
从任何操作系统
27
00:01:26,000 --> 00:01:28,600
它应该方便并且应该安全
28
00:01:28,600 --> 00:01:31,100
来自黑客和你的房子被烧毁
29
00:01:31,870 --> 00:01:34,330
尤其是安全是一个主要问题
30
00:01:34,500 --> 00:01:36,900
实施我的账户法案对我来说将是一场灾难
31
00:01:36,900 --> 00:01:39,330
如果这能发生在像曼城这样的大型组织身上
32
00:01:39,330 --> 00:01:41,270
Projectrat 或 Linus 技术提示
33
00:01:41,270 --> 00:01:43,570
它可能发生在我身上也可能发生在你身上
34
00:01:43,600 --> 00:01:45,270
或者你的公司也可能发生这种情况
35
00:01:45,770 --> 00:01:47,130
Nodpass 业务是
36
00:01:47,130 --> 00:01:48,870
所有这一切的优秀解决方案
37
00:01:49,000 --> 00:01:50,930
它将您的密码安全地存储在一个
38
00:01:50,930 --> 00:01:52,270
无障碍位置
39
00:01:52,400 --> 00:01:54,970
甚至为您终止您的登录凭据
40
00:01:55,200 --> 00:01:56,000
这使它超级
41
00:01:56,000 --> 00:01:58,170
轻松在 Github 上保存您的游戏项目
42
00:01:58,170 --> 00:01:59,130
和谷歌云端硬盘
43
00:01:59,130 --> 00:02:00,200
并有权访问它们
44
00:02:00,200 --> 00:02:01,470
世界各地
45
00:02:01,770 --> 00:02:04,000
它甚至可以让您识别弱密码
46
00:02:04,000 --> 00:02:04,470
和
47
00:02:04,470 --> 00:02:06,870
它会检查您现有的密码是否已被使用
48
00:02:06,870 --> 00:02:07,900
网上泄露
49
00:02:08,300 --> 00:02:09,300
最重要的是
50
00:02:09,370 --> 00:02:12,170
您还可以设置生物识别
51
00:02:12,170 --> 00:02:14,470
并使用多因素身份验证
52
00:02:15,530 --> 00:02:18,330
Notpass Business 还适用于无限制的护照
53
00:02:18,330 --> 00:02:20,800
包括 Wi-Fi 凭证和信用卡
54
00:02:20,800 --> 00:02:22,570
所以即使是工作以外的事情
55
00:02:22,570 --> 00:02:24,470
它非常有用
56
00:02:25,070 --> 00:02:26,500
如果你想晚上睡得安稳
57
00:02:26,500 --> 00:02:28,270
不用担心您的密码
58
00:02:28,300 --> 00:02:29,500
查看 Notpass 业务
59
00:02:29,500 --> 00:02:31,530
在描述和链接评论中
60
00:02:32,130 --> 00:02:34,930
如果你去 notpass com clearcode
61
00:02:34,930 --> 00:02:35,500
你会得到
62
00:02:35,500 --> 00:02:38,100
令人惊叹的密码管理器免费试用一个月
63
00:02:38,100 --> 00:02:40,170
还帮我制作更多视频
64
00:02:40,200 --> 00:02:41,700
所以我一定会检查一下
65
00:02:42,300 --> 00:02:44,270
好吧,让我们开始吧
66
00:02:44,330 --> 00:02:45,070
首先
67
00:02:45,070 --> 00:02:47,500
Godo 是什么以及它如何帮助您制作游戏
68
00:02:48,130 --> 00:02:49,530
Godo是一个游戏引擎
69
00:02:49,530 --> 00:02:52,330
这意味着它是一个可以让您显示图像的应用程序
70
00:02:52,330 --> 00:02:55,100
播放声音捕获用户输入和类似的东西
71
00:02:55,300 --> 00:02:57,330
Godo 可以做更高级的事情
72
00:02:57,500 --> 00:02:59,730
就像物理计算寻路
73
00:02:59,730 --> 00:03:01,530
骨架动画和网络
74
00:03:01,530 --> 00:03:03,000
用于多人游戏
75
00:03:03,170 --> 00:03:04,130
你所要做的一切
76
00:03:04,130 --> 00:03:06,800
就是将各种概念结合起来然后创建
77
00:03:06,800 --> 00:03:07,600
你的游戏
78
00:03:08,170 --> 00:03:10,870
这可以是 2D 或 3D 游戏
79
00:03:10,900 --> 00:03:12,400
古多都支持
80
00:03:12,770 --> 00:03:13,200
其他游戏
81
00:03:13,200 --> 00:03:16,000
您可能听说过的引擎是统一且不真实的
82
00:03:16,000 --> 00:03:18,300
有数百个引擎但最终
83
00:03:18,300 --> 00:03:20,170
他们基本上都做同样的事情
84
00:03:20,700 --> 00:03:22,370
工藤的一大优势
85
00:03:22,370 --> 00:03:25,530
是它完全免费并且由社区开发
86
00:03:25,870 --> 00:03:27,300
你永远不需要支付任何费用
87
00:03:27,330 --> 00:03:29,270
你不必放弃你的灵魂和一些
88
00:03:29,270 --> 00:03:32,200
法律文本您甚至不必创建帐户
89
00:03:32,330 --> 00:03:33,300
你所要做的一切
90
00:03:33,330 --> 00:03:36,930
访问 goodowengine com 并单击“下载最新版本”
91
00:03:37,200 --> 00:03:38,070
然后你可以选择
92
00:03:38,070 --> 00:03:39,930
适合您的操作系统的版本
93
00:03:39,970 --> 00:03:41,970
尽管古多可能会发现正确的
94
00:03:41,970 --> 00:03:43,670
网站上为您提供的版本
95
00:03:43,670 --> 00:03:46,270
所以只要点击 Goodo Engine 就可以了
96
00:03:46,370 --> 00:03:48,470
您正在下载一个 zip 文件
97
00:03:48,470 --> 00:03:51,330
如果你解压它,你会得到两个文件
98
00:03:51,600 --> 00:03:54,670
一个是 Goodo 本身,另一个会打开控制台
99
00:03:55,100 --> 00:03:57,130
可以使用字母14调试
100
00:03:57,130 --> 00:03:58,570
但我会忽略它
101
00:03:58,970 --> 00:04:01,370
所以我只需点击 Google,你就会得到启动器
102
00:04:01,800 --> 00:04:02,730
在主面板中
103
00:04:02,730 --> 00:04:04,370
你会看到你创建的项目
104
00:04:04,370 --> 00:04:06,600
过去虽然现在是空的
105
00:04:06,600 --> 00:04:08,170
因为我们还没有这样做
106
00:04:08,200 --> 00:04:10,370
右边你可以创建一个新项目
107
00:04:10,370 --> 00:04:12,100
或现有的一个重要的
108
00:04:12,300 --> 00:04:14,770
我想创建一个新的项目信封
109
00:04:14,770 --> 00:04:16,930
我的对话,您可以在其中指定项目名称
110
00:04:16,930 --> 00:04:19,900
和一个我称之为项目射手的文件夹
111
00:04:19,900 --> 00:04:22,330
对于文件夹,我单击“浏览”
112
00:04:22,530 --> 00:04:24,170
它默认打开文档
113
00:04:24,170 --> 00:04:26,530
你想在那里创建一个文件夹
114
00:04:26,670 --> 00:04:27,730
在制作游戏的同时
115
00:04:27,730 --> 00:04:30,000
我们将创建很多文件
116
00:04:30,330 --> 00:04:32,270
并且您想让事情井井有条
117
00:04:32,900 --> 00:04:34,970
我们也可以命名文件夹射手
118
00:04:34,970 --> 00:04:37,100
然后选择当前文件夹
119
00:04:37,700 --> 00:04:40,000
之后你必须选择一个渲染器
120
00:04:40,170 --> 00:04:42,530
这将决定 Google 如何呈现您的游戏
121
00:04:42,530 --> 00:04:43,470
当它运行时
122
00:04:44,300 --> 00:04:45,730
手机是默认的
123
00:04:45,730 --> 00:04:48,400
它适用于桌面和移动游戏
124
00:04:48,530 --> 00:04:50,330
这个名字有点误导
125
00:04:50,730 --> 00:04:52,800
此模式还可以显示 3D 图形
126
00:04:52,800 --> 00:04:54,600
但有点有限
127
00:04:54,770 --> 00:04:55,600
对于 2d 游戏
128
00:04:55,600 --> 00:04:57,470
虽然这很好
129
00:04:57,530 --> 00:05:00,200
真正漂亮的 3D 游戏的优点是什么
130
00:05:00,200 --> 00:05:01,900
并且兼容性很有用
131
00:05:01,900 --> 00:05:02,870
如果你想支持
132
00:05:02,870 --> 00:05:05,330
非常旧的设备或制作浏览器游戏
133
00:05:05,870 --> 00:05:07,870
现在出于本教程的目的
134
00:05:07,870 --> 00:05:09,870
选择哪一个并不重要
135
00:05:10,270 --> 00:05:11,800
布多也会同样离开
136
00:05:11,800 --> 00:05:13,170
无论你选择什么
137
00:05:13,170 --> 00:05:16,000
稍后您还可以更改您的选择
138
00:05:16,300 --> 00:05:19,270
出于本教程的目的,我将使用移动设备
139
00:05:19,270 --> 00:05:20,770
但你可以选择任何你想要的
140
00:05:20,770 --> 00:05:22,200
这真的没关系
141
00:05:22,370 --> 00:05:24,000
您还可以使用版本控制
142
00:05:24,000 --> 00:05:25,570
但我会忽略那个
143
00:05:25,970 --> 00:05:27,300
完成设置
144
00:05:27,300 --> 00:05:29,470
现在点击创建和编辑
145
00:05:30,130 --> 00:05:31,500
这应该打开编辑器
146
00:05:31,800 --> 00:05:32,970
理解你所看到的
147
00:05:33,100 --> 00:05:35,870
我们需要涵盖最基本的概念
148
00:05:36,400 --> 00:05:38,170
笔记和场景
149
00:05:38,730 --> 00:05:41,370
笔记是最基本的构建块
150
00:05:41,370 --> 00:05:43,500
节点可以是图像、声音
151
00:05:43,500 --> 00:05:46,700
它也可以是计时器、路径、骨架、区域
152
00:05:46,700 --> 00:05:48,270
或者很多其他的事情
153
00:05:48,570 --> 00:05:50,000
有数百个节点
154
00:05:50,000 --> 00:05:52,370
你基本上将它们结合起来创造出各种
155
00:05:52,370 --> 00:05:53,530
你的游戏的一部分
156
00:05:53,970 --> 00:05:56,100
例如,这是一个简单的侦察兵
157
00:05:56,100 --> 00:05:57,730
我们要创造的敌人
158
00:05:58,200 --> 00:05:58,930
在左侧
159
00:05:58,930 --> 00:06:01,370
你可以看到创建这个角色的节点
160
00:06:01,930 --> 00:06:03,870
Sprite 2D 只是一个图像
161
00:06:03,870 --> 00:06:06,770
这一张包含了侦察兵的真实图像
162
00:06:07,570 --> 00:06:09,070
还有一个攻击区域
163
00:06:09,070 --> 00:06:11,500
我们有两个计时器和一个音响设备
164
00:06:11,500 --> 00:06:12,770
当侦察兵被击中时
165
00:06:13,170 --> 00:06:14,900
还有几个节点
166
00:06:14,900 --> 00:06:16,200
但不用担心那些
167
00:06:16,300 --> 00:06:18,130
现在唯一重要的是
168
00:06:18,130 --> 00:06:20,900
Scout是由多个节点组成的
169
00:06:21,000 --> 00:06:23,170
每个都做特定的事情
170
00:06:23,170 --> 00:06:25,400
例如显示图像或播放声音
171
00:06:25,400 --> 00:06:26,570
或一个区域
172
00:06:26,570 --> 00:06:29,100
我们可以在其中检查另一个对象是否已进入
173
00:06:29,400 --> 00:06:30,330
最重要的是
174
00:06:30,400 --> 00:06:31,770
所有这些笔记都有属性
175
00:06:31,770 --> 00:06:33,000
你可以操纵
176
00:06:33,170 --> 00:06:35,900
您可以在右侧的检查器中看到所有这些
177
00:06:36,270 --> 00:06:38,700
例如要选择的精灵
178
00:06:38,700 --> 00:06:41,500
我可以去变身然后改变位置
179
00:06:41,500 --> 00:06:43,270
比例和旋转
180
00:06:43,370 --> 00:06:46,330
稍后我们将详细使用所有这些
181
00:06:46,730 --> 00:06:47,800
那就是
182
00:06:47,800 --> 00:06:50,600
基本上所有你需要知道的笔记基础知识
183
00:06:50,700 --> 00:06:53,100
另一个重要的概念是场景
184
00:06:53,100 --> 00:06:55,270
这个做了两件大事
185
00:06:55,700 --> 00:06:59,670
第 1 个用于组织笔记,第 2 个用于显示笔记
186
00:07:00,100 --> 00:07:03,070
你可以把它想象成一个画布和一个文件夹
187
00:07:03,100 --> 00:07:06,870
基本上你看到的主面板是当前打开的C
188
00:07:06,970 --> 00:07:09,000
它可以是 2d 或 3d
189
00:07:09,170 --> 00:07:12,170
它会显示您放入其中的注释
190
00:07:12,470 --> 00:07:15,200
意思是它包含并组织笔记
191
00:07:15,200 --> 00:07:16,700
它显示它们
192
00:07:16,900 --> 00:07:19,170
真正需要理解的是什么
193
00:07:19,300 --> 00:07:22,800
就是你可以将一个场景放置在另一个场景中
194
00:07:22,930 --> 00:07:25,930
这样你就可以将笔记组合成逻辑对象
195
00:07:25,930 --> 00:07:28,300
例如这里我们必须再次侦察
196
00:07:28,330 --> 00:07:29,970
并在编辑器的中间
197
00:07:29,970 --> 00:07:32,330
大面板是侦察场景
198
00:07:32,530 --> 00:07:34,970
除此之外我们还可以有其他场景
199
00:07:34,970 --> 00:07:38,270
例如我有一个更大的关卡,称为“outside”
200
00:07:38,330 --> 00:07:39,770
这是另一个场景
第202章
201
00:07:39,770 --> 00:07:42,070
这变得更加复杂
202
00:07:42,400 --> 00:07:43,730
虽然如果你放大
203
00:07:43,730 --> 00:07:44,470
你可以看到
204
00:07:44,470 --> 00:07:47,170
我们有多个侦察场景实例
205
00:07:47,170 --> 00:07:48,970
在室外场景中
206
00:07:49,170 --> 00:07:51,300
这里还有很多事情发生
207
00:07:51,300 --> 00:07:52,730
但不用担心
208
00:07:52,800 --> 00:07:55,570
稍后我将详细介绍所有这些内容
209
00:07:56,070 --> 00:07:58,500
现在你真正需要了解的就是
210
00:07:58,570 --> 00:08:01,400
笔记是基本的构建块
211
00:08:01,930 --> 00:08:04,800
然后你把这些笔记放在场景中来组织它们
212
00:08:05,370 --> 00:08:06,330
最重要的是
213
00:08:06,330 --> 00:08:07,570
场景可以放置在
214
00:08:07,570 --> 00:08:09,800
组织整个游戏的其他场景
215
00:08:09,800 --> 00:08:12,130
好一点,基本上就是这样
216
00:08:12,270 --> 00:08:15,000
它涵盖了 Goodo 的大部分 UI
217
00:08:15,400 --> 00:08:16,700
回顾一下
218
00:08:16,700 --> 00:08:19,000
我们在中心有当前打开的场景
219
00:08:19,000 --> 00:08:19,900
然后在左边
220
00:08:19,900 --> 00:08:21,770
我们有该场景中的所有笔记
221
00:08:21,770 --> 00:08:22,570
在右边
222
00:08:22,570 --> 00:08:25,470
你有笔记属性的检查员
223
00:08:25,870 --> 00:08:28,270
最后一个主要部分是文件系统
224
00:08:28,270 --> 00:08:30,130
你可以在左下角看到
225
00:08:31,000 --> 00:08:32,270
这会显示您的文件
226
00:08:32,270 --> 00:08:35,100
您还可以使用它导入其他资产
227
00:08:35,400 --> 00:08:36,770
我其实想这么做
228
00:08:36,900 --> 00:08:38,670
如果你看视频描述
229
00:08:38,670 --> 00:08:40,670
您将找到资源链接
第231章
230
00:08:40,700 --> 00:08:41,100
那将
第232章
231
00:08:41,100 --> 00:08:42,000
带你到一个页面
232
00:08:42,000 --> 00:08:43,530
您可以在哪里下载完整游戏
233
00:08:43,530 --> 00:08:44,770
和资源
234
00:08:44,770 --> 00:08:46,130
这就是我想做的
235
00:08:46,130 --> 00:08:47,800
所以我想下载zip文件
第237章
236
00:08:48,330 --> 00:08:49,470
下载完成后
237
00:08:49,470 --> 00:08:50,770
您想返回 Google
238
00:08:50,770 --> 00:08:52,530
并且有文件
239
00:08:52,530 --> 00:08:54,930
我想提取
第241章
240
00:08:55,100 --> 00:08:56,530
也在下载中
第242章
241
00:08:57,300 --> 00:08:58,570
这需要一点时间
242
00:09:01,570 --> 00:09:02,800
然后你就有了文件夹
243
00:09:03,070 --> 00:09:06,000
在那里你想要去资源
244
00:09:06,000 --> 00:09:08,130
那里有图形和音频
245
00:09:08,530 --> 00:09:09,300
输入它们
第247章
246
00:09:09,300 --> 00:09:12,670
你只需要像这样将文件定向到 kudo 中
247
00:09:14,330 --> 00:09:16,100
然后 kudo 将输入一秒钟
248
00:09:17,600 --> 00:09:19,530
然后你就拥有了所有的艺术资产
249
00:09:19,530 --> 00:09:21,770
所以里面有很多东西
第251章
250
00:09:22,270 --> 00:09:25,370
此时您还可以导入音频文件夹
第252章
251
00:09:25,600 --> 00:09:27,930
虽然我稍后会这么做
第253章
252
00:09:27,930 --> 00:09:29,930
因为现在我们并不真正需要它
第254章
253
00:09:30,600 --> 00:09:34,000
最后在顶部你可以看到更多选项
254
00:09:34,070 --> 00:09:36,500
虽然这些目前还不太重要
255
00:09:36,500 --> 00:09:37,800
除了一个
第257章
256
00:09:38,370 --> 00:09:40,770
默认情况下,Goodau 具有蓝色色调
257
00:09:40,770 --> 00:09:42,900
我发现这真的让人分心
第259章
258
00:09:43,200 --> 00:09:46,570
但将其更改为编辑器,然后编辑器设置
259
00:09:46,800 --> 00:09:49,700
这将打开一个新对话框,您可以在其中更新主题
260
00:09:50,000 --> 00:09:51,530
我将使用灰色主题
261
00:09:51,530 --> 00:09:53,300
这是更加中立的
262
00:09:53,600 --> 00:09:55,300
但这只会改变颜色
263
00:09:55,370 --> 00:09:57,470
如果您喜欢默认值或想要其他更改
264
00:09:57,470 --> 00:09:58,730
只需选择你喜欢的
265
00:09:59,700 --> 00:10:02,270
这使得编辑器看起来更赏心悦目
第267章
266
00:10:02,570 --> 00:10:04,570
现在我们已经介绍了基础知识
267
00:10:04,570 --> 00:10:08,270
我想实际创建几个场景和节点
268
00:10:08,470 --> 00:10:09,530
具体来说
269
00:10:09,530 --> 00:10:12,530
我想创建两个场景和一堆节点
第271章
270
00:10:12,870 --> 00:10:15,800
最重要的是我想创建一个关卡场景
第272章
271
00:10:15,900 --> 00:10:19,470
现在这个只包含一些图像
272
00:10:19,470 --> 00:10:21,870
只是因为这是最容易添加的东西
273
00:10:22,600 --> 00:10:25,730
除此之外我还想创建一个玩家场景
274
00:10:26,000 --> 00:10:27,070
这个也
275
00:10:27,070 --> 00:10:29,530
现在只是一张图片
第277章
276
00:10:30,730 --> 00:10:32,670
最后我想做的最后一件事
277
00:10:32,700 --> 00:10:35,930
就是把玩家场景放在关卡场景里面
第279章
278
00:10:36,300 --> 00:10:36,930
那样
279
00:10:36,930 --> 00:10:39,600
我们可以稍后向播放器添加很多东西
第281章
280
00:10:39,600 --> 00:10:42,970
但仍然可以在关卡内看到玩家本身
第282章
281
00:10:43,270 --> 00:10:44,970
使组织变得更好
第283章
282
00:10:45,470 --> 00:10:46,600
但对于这一切
第284章
283
00:10:46,600 --> 00:10:48,600
让我们实际创建一些基本的东西
第285章
284
00:10:48,600 --> 00:10:51,000
Goodoo,我们又回到编辑器了
第286章
285
00:10:51,000 --> 00:10:53,300
因为我想创建一个 2d 游戏
第287章
286
00:10:53,300 --> 00:10:55,670
我想在二维工作空间中工作
287
00:10:56,130 --> 00:10:58,570
我们可以在顶部选择不同的工作空间
第289章
288
00:10:58,570 --> 00:11:00,530
我想在 2d 内部工作
289
00:11:01,530 --> 00:11:05,330
现在我们可以看到一个二维工作区
第291章
290
00:11:05,330 --> 00:11:06,570
让我缩小一点
第292章
291
00:11:06,670 --> 00:11:10,400
您可以看到的所有灰色区域都是工作区
292
00:11:10,700 --> 00:11:11,170
虽然
293
00:11:11,170 --> 00:11:14,070
你想要知道的是有一个
294
00:11:14,070 --> 00:11:15,370
蓝色矩形
295
00:11:15,370 --> 00:11:17,000
在视频中很难看到
第297章
296
00:11:17,000 --> 00:11:18,400
但如果你必须去打开
297
00:11:18,400 --> 00:11:19,970
这个很容易看到
298
00:11:20,700 --> 00:11:22,170
这个蓝色区域
299
00:11:22,200 --> 00:11:24,770
是玩家可以看到的内容
300
00:11:24,930 --> 00:11:25,470
这会
第302章
301
00:11:25,470 --> 00:11:28,100
只需一点点就可以有效地成为游戏窗口
302
00:11:28,270 --> 00:11:29,570
哦,好吧,已经是了
303
00:11:29,570 --> 00:11:31,570
但这部分是可见的
304
00:11:31,930 --> 00:11:34,570
你现在看到的所有这些东西都是一个场景
305
00:11:34,730 --> 00:11:37,000
此刻这个场景没有名字
306
00:11:37,200 --> 00:11:40,900
这意味着在顶部的选项卡上您可以看到空的
307
00:11:41,200 --> 00:11:43,730
要给这个场景命名,你必须保存它
308
00:11:43,930 --> 00:11:45,970
我们一会儿要做的事
309
00:11:45,970 --> 00:11:47,900
但现在我们不能
310
00:11:47,900 --> 00:11:49,800
因为为了挽救一个场景
第312章
311
00:11:49,800 --> 00:11:51,670
我们需要在里面放一些笔记
312
00:11:51,900 --> 00:11:54,770
我们可以从左侧面板中获得注释
313
00:11:56,200 --> 00:11:58,370
我们可以选择创建一个2d场景
314
00:11:58,370 --> 00:12:01,100
3D 场景 用户界面或
315
00:12:01,170 --> 00:12:04,000
其他注释如果我点击其他注释
第317章
316
00:12:04,130 --> 00:12:07,200
你可以看到 Godo 内所有可用的笔记
317
00:12:07,200 --> 00:12:09,370
还有不少
第319章
318
00:12:09,400 --> 00:12:11,300
例如 note 2D 内部
319
00:12:11,330 --> 00:12:13,500
我可以扩展一切
320
00:12:13,530 --> 00:12:15,570
并查看所有可用的注释
第322章
321
00:12:16,100 --> 00:12:19,870
现在我将在本教程中介绍其中的大部分内容
322
00:12:20,000 --> 00:12:22,470
但现在这一切都会过去
第324章
323
00:12:22,470 --> 00:12:26,070
太高级了,所以我要点击取消
324
00:12:26,100 --> 00:12:28,600
我只是想创建一个 2d 场景
第326章
325
00:12:29,100 --> 00:12:32,570
这将在节点 2d 中创建一个节点
第327章
326
00:12:32,930 --> 00:12:34,200
这将是其中之一
327
00:12:34,330 --> 00:12:36,770
您可以用好的面团创建最简单的节点
第329章
328
00:12:37,000 --> 00:12:41,100
实际上它只是二维空间中的一个点
329
00:12:41,270 --> 00:12:42,930
你实际上已经可以看到它了
第331章
330
00:12:43,330 --> 00:12:45,200
如果你看画布
第332章
331
00:12:45,200 --> 00:12:46,370
有这个红点
第333章
332
00:12:46,370 --> 00:12:49,000
如果我已经克服了它,你就看不到二维了
第334章
333
00:12:49,330 --> 00:12:51,270
但这就是字面上的意思
第335章
334
00:12:51,930 --> 00:12:54,100
这只是一个红点
第336章
335
00:12:54,530 --> 00:12:56,170
我可以进一步说明这一点
第337章
336
00:12:56,170 --> 00:12:57,530
因为如果我们向右看
第338章
337
00:12:57,530 --> 00:12:59,000
我们有转变
第339章
338
00:12:59,270 --> 00:13:01,270
然后我们可以设置旋转的位置
339
00:13:01,270 --> 00:13:03,570
该点的尺度和偏斜
第341章
340
00:13:03,930 --> 00:13:05,900
旋转将很容易看到
第342章
341
00:13:05,930 --> 00:13:08,770
如果我旋转该点,我们会得到一个旋转点
第343章
342
00:13:09,170 --> 00:13:12,170
虽然玩家看不到这些
第344章
343
00:13:12,270 --> 00:13:14,730
该点仅在编辑器中可见
第345章
344
00:13:15,270 --> 00:13:18,500
你可能会问这对游戏有什么帮助
第346章
345
00:13:18,670 --> 00:13:19,970
答案是
第347章
346
00:13:20,000 --> 00:13:22,970
至少在可见度方面不是很多
第348章
347
00:13:23,170 --> 00:13:26,400
注意深度主要用于组织
第349章
348
00:13:26,500 --> 00:13:27,470
所以你会添加其他
349
00:13:27,470 --> 00:13:29,200
笔记作为孩子到这个笔记到深刻
第351章
350
00:13:29,200 --> 00:13:30,470
组织你的游戏
第352章
351
00:13:30,900 --> 00:13:32,070
事实上
第353章
352
00:13:32,070 --> 00:13:34,770
我想立即将此笔记重命名为deep
第354章
353
00:13:35,570 --> 00:13:38,770
我认为 level 会是一个更好的名字
第355章
354
00:13:39,330 --> 00:13:40,370
现在我们有了
第356章
355
00:13:40,400 --> 00:13:43,800
我们有一个场景,里面有一张纸条
第357章
356
00:13:44,070 --> 00:13:46,370
我现在想保存这个场景
第358章
357
00:13:46,470 --> 00:13:49,130
我可以使用 Ctrl 或 Command 来完成此操作
第359章
358
00:13:49,130 --> 00:13:51,570
或者通过转到场景并保存场景
359
00:13:52,170 --> 00:13:52,900
眼下
第361章
360
00:13:52,900 --> 00:13:55,670
我们只有之前导入的图形文件夹
第362章
361
00:13:55,770 --> 00:13:58,130
除此之外我想创建另一个文件夹
第363章
362
00:13:58,130 --> 00:13:59,800
我将称之为场景
第364章
363
00:14:00,200 --> 00:14:01,870
全部为小写字母
364
00:14:02,900 --> 00:14:05,900
我想在这个场景文件夹中创建
第366章
365
00:14:06,000 --> 00:14:07,000
另一个文件夹
第367章
366
00:14:07,130 --> 00:14:09,200
我称之为一级
第368章
367
00:14:09,600 --> 00:14:10,770
仅仅因为后来
第369章
368
00:14:10,770 --> 00:14:12,530
我们将会有多个
369
00:14:13,130 --> 00:14:14,800
在此级别文件夹内
第371章
370
00:14:14,800 --> 00:14:16,370
我要保存这个场景
第372章
371
00:14:16,570 --> 00:14:19,270
你已经可以看出我们有水平
第373章
372
00:14:19,300 --> 00:14:21,300
TSCN 古多
第374章
373
00:14:21,300 --> 00:14:24,530
始终选择场景的第一个音符的名称
第375章
374
00:14:24,700 --> 00:14:26,170
这意味着就我而言
第376章
375
00:14:26,170 --> 00:14:26,870
首先
第377章
376
00:14:26,870 --> 00:14:29,070
请注意,我们添加到场景中的是代码级别的
第378章
377
00:14:29,070 --> 00:14:32,130
这将是我们默认得到的名称
第379章
378
00:14:32,270 --> 00:14:34,500
这也是您可能想要使用的
379
00:14:34,600 --> 00:14:35,770
所以我想保存它
第381章
380
00:14:36,470 --> 00:14:39,600
现在我们有一些小的改变
第382章
381
00:14:39,600 --> 00:14:40,870
最重要的变化
第383章
382
00:14:40,870 --> 00:14:43,330
我们现在有一个名为 level 的选项卡
第384章
383
00:14:43,470 --> 00:14:44,730
这就是场景
第385章
384
00:14:44,770 --> 00:14:47,400
在这个场景中我们有一个注释
第386章
385
00:14:47,500 --> 00:14:49,300
一个称为 level 的 2D 音符
第387章
386
00:14:49,670 --> 00:14:52,270
这个 Node 2D 现在没有做太多事情
第388章
387
00:14:52,300 --> 00:14:54,570
实际上就是这一点
第389章
388
00:14:55,300 --> 00:14:57,370
我们稍后要做一些更有用的事情
389
00:14:57,800 --> 00:14:58,670
除此之外
第391章
390
00:14:59,200 --> 00:15:02,400
我们的文件系统中还有一个新文件夹
第392章
391
00:15:02,400 --> 00:15:03,730
我们在那里有场景
第393章
392
00:15:03,730 --> 00:15:06,570
我们有级别,然后我们有级别 TSCN
第394章
393
00:15:06,870 --> 00:15:08,400
尽管让我最小化这一切
第395章
394
00:15:08,400 --> 00:15:10,000
因为我们现在不需要它
第396章
395
00:15:10,470 --> 00:15:12,000
现在我们已经有了基本的设置
第397章
396
00:15:12,000 --> 00:15:14,500
我想在这个场景中添加一张图片
第398章
397
00:15:14,500 --> 00:15:16,800
为此我需要另一张纸条
第399章
398
00:15:17,170 --> 00:15:18,200
添加另一个注释
399
00:15:18,330 --> 00:15:20,800
我必须转到这个加号
400
00:15:20,930 --> 00:15:23,500
或者按 Ctrl 或 command 和 a
第402章
401
00:15:24,300 --> 00:15:27,670
无论哪种情况,您都会再次找到此对话框
402
00:15:28,930 --> 00:15:32,530
在其中您可以简单地选择任何类型的节点
403
00:15:32,530 --> 00:15:33,930
就像多人生成器一样
404
00:15:33,930 --> 00:15:35,270
但这不是我想要的
405
00:15:35,270 --> 00:15:37,870
所以让我用控制器命令 Z 撤消所有这一切
406
00:15:38,400 --> 00:15:42,400
相反,我想寻找一个特定的节点
第408章
407
00:15:42,770 --> 00:15:44,370
既然有这么多
408
00:15:44,370 --> 00:15:46,130
大多数时候当你添加新节点时
409
00:15:46,130 --> 00:15:47,870
您正在使用搜索功能
第411章
410
00:15:48,200 --> 00:15:50,330
我想寻找精灵
第412章
411
00:15:51,000 --> 00:15:53,330
几乎是一个二维精灵
第413章
412
00:15:53,970 --> 00:15:56,370
这是一个可以显示图像的节点
第414章
413
00:15:57,100 --> 00:15:58,530
所以如果我双击它
第415章
414
00:15:58,700 --> 00:16:00,870
我们现在添加了另一个节点
第416章
415
00:16:01,330 --> 00:16:02,770
在我继续之前
第417章
416
00:16:02,770 --> 00:16:04,700
你确实想要关注的事情
第418章
417
00:16:04,730 --> 00:16:06,300
我们有我们的水平吗
第419章
418
00:16:06,300 --> 00:16:08,400
注意这是父级
第420章
419
00:16:08,500 --> 00:16:11,130
这个父母有一个孩子,它是精灵
第421章
420
00:16:11,130 --> 00:16:11,930
太深
第422章
421
00:16:12,500 --> 00:16:15,800
这种亲子关系真的很重要
第423章
422
00:16:16,070 --> 00:16:18,070
我稍后会介绍更多内容
第424章
423
00:16:18,330 --> 00:16:20,930
但现在请记住我们有父母和孩子
第425章
424
00:16:20,930 --> 00:16:22,970
父母影响孩子
第426章
425
00:16:23,470 --> 00:16:24,370
话虽如此
第427章
426
00:16:24,400 --> 00:16:25,670
我们仍然看不到
第428章
427
00:16:25,670 --> 00:16:28,700
场景内的任何类型的图像
第429章
428
00:16:28,730 --> 00:16:30,530
为此我们必须向右看
第430章
429
00:16:30,570 --> 00:16:32,470
因为我们有检查员
第431章
430
00:16:33,070 --> 00:16:35,170
我们仍然可以变换图像
第432章
431
00:16:35,170 --> 00:16:36,930
所以就像没有太深
第433章
432
00:16:36,930 --> 00:16:38,870
我们有位置旋转比例和倾斜
第434章
433
00:16:38,870 --> 00:16:40,600
但我们不关心他们中的任何一个
第435章
434
00:16:41,270 --> 00:16:44,200
相反,我们关心的是额外的选项
第436章
435
00:16:44,200 --> 00:16:47,270
我们有纹理偏移动画和区域
第437章
436
00:16:47,570 --> 00:16:50,170
纹理是我们必须添加才能获得图片的东西
第438章
437
00:16:50,170 --> 00:16:51,970
如果你点击下拉菜单
第439章
438
00:16:52,130 --> 00:16:55,200
你可以添加一大堆东西
第440章
439
00:16:55,730 --> 00:16:57,370
虽然我不在乎
第441章
440
00:16:57,370 --> 00:16:59,700
因为有一种更简单的方法来添加图像
第442章
441
00:16:59,800 --> 00:17:02,500
你所要做的就是查看文件系统
第443章
442
00:17:03,270 --> 00:17:05,800
例如,我有图标 SVG
第444章
443
00:17:06,130 --> 00:17:08,870
默认情况下,您拥有每个 Google 项目
第445章
444
00:17:09,000 --> 00:17:12,700
我只想将这张图像拖到纹理中
第446章
445
00:17:12,700 --> 00:17:13,400
你可以看到
第447章
446
00:17:13,400 --> 00:17:15,770
球场周围有一个蓝色的框
第448章
447
00:17:15,930 --> 00:17:18,930
所以如果我把它放在那里我们现在就有了一个图像
第449章
448
00:17:19,930 --> 00:17:21,400
这是很好的旧标志
449
00:17:23,570 --> 00:17:26,600
我们可以看到它,因为我们有一个 2d 精灵
第451章
450
00:17:26,900 --> 00:17:28,730
我们现在可以影响这个形象
第452章
451
00:17:28,730 --> 00:17:29,300
例如
第453章
452
00:17:29,300 --> 00:17:32,130
我可以简单地用鼠标拖动它并移动它
第454章
453
00:17:32,130 --> 00:17:33,970
让我缩小一点
第455章
454
00:17:34,070 --> 00:17:36,770
这样我就可以看到整个游戏窗口
第456章
455
00:17:37,130 --> 00:17:40,300
我可以简单地移动这张图片
第457章
456
00:17:40,370 --> 00:17:42,400
并将其放置在某个位置
第458章
457
00:17:43,000 --> 00:17:45,730
除此之外,如果你看看检查员
第459章
458
00:17:45,900 --> 00:17:47,330
我们还有一些事情
第460章
459
00:17:47,700 --> 00:17:49,070
它有偏移,因此
第461章
460
00:17:49,070 --> 00:17:51,170
例如我们可以使用 Flip H
第462章
461
00:17:51,170 --> 00:17:52,500
那是不可见的
第463章
462
00:17:52,500 --> 00:17:55,070
但您可以使用 Flip V 进行垂直翻转
第464章
463
00:17:56,900 --> 00:17:58,500
你也可以给它一个偏移量
第465章
464
00:17:58,500 --> 00:18:00,930
但我并不真正关心这些选项
第466章
465
00:18:01,130 --> 00:18:02,800
除此之外我们还有一个动画
第467章
466
00:18:02,870 --> 00:18:04,330
但这有点先进
第468章
467
00:18:04,330 --> 00:18:05,370
所以我会忽略它
第469章
468
00:18:05,570 --> 00:18:06,930
我们有一个地区
第470章
469
00:18:07,270 --> 00:18:08,670
如果你启用它
第471章
470
00:18:09,330 --> 00:18:10,900
图像消失
第472章
471
00:18:10,970 --> 00:18:13,470
但是你也可以做的是编辑区域
第473章
472
00:18:13,700 --> 00:18:15,470
然后你会看到另一个对话框
第474章
473
00:18:15,470 --> 00:18:18,200
然后你可以在这里选择图像的一个区域
第475章
474
00:18:18,200 --> 00:18:21,070
所以让我剪掉一部分
第476章
475
00:18:21,470 --> 00:18:22,530
然后点击关闭
第477章
476
00:18:22,700 --> 00:18:25,370
现在我们可以看到一些有点奇怪的行为
第478章
477
00:18:25,530 --> 00:18:27,330
别太担心这个
第479章
478
00:18:27,330 --> 00:18:28,130
因为后来
第480章
479
00:18:28,130 --> 00:18:28,470
我们要去
第481章
480
00:18:28,470 --> 00:18:28,800
与...一起工作
第482章
481
00:18:28,800 --> 00:18:31,530
更详细地说明并修复这些奇怪的工件
第483章
482
00:18:31,670 --> 00:18:35,100
现在我只是要禁用该区域
第484章
483
00:18:35,170 --> 00:18:37,070
然后我们回到基本图像
第485章
484
00:18:37,800 --> 00:18:39,670
最后你可以使用变换
第486章
485
00:18:39,670 --> 00:18:41,500
我们可以更新位置
第487章
486
00:18:41,530 --> 00:18:42,930
我们可以改变旋转
第488章
487
00:18:43,400 --> 00:18:45,300
我们可以扩展这一切
第489章
488
00:18:45,700 --> 00:18:47,000
或者我们可以扭曲它
第490章
489
00:18:47,730 --> 00:18:48,530
像这样
第491章
490
00:18:49,000 --> 00:18:50,970
你也可以看到而不是检查员
第492章
491
00:18:51,000 --> 00:18:52,900
每当我们更改默认值时
第493章
492
00:18:52,900 --> 00:18:56,700
您可以通过单击返回箭头来重置它
第494章
493
00:18:57,000 --> 00:19:00,270
我们添加了一张图片
第495章
494
00:19:00,600 --> 00:19:01,500
在我们继续之前
第496章
495
00:19:01,500 --> 00:19:03,800
我想介绍两个重要的概念
第497章
496
00:19:04,100 --> 00:19:05,330
第一个是
第498章
497
00:19:05,330 --> 00:19:06,300
坐标系
第499章
498
00:19:06,300 --> 00:19:08,000
我们正在使用的窗口的
499
00:19:08,000 --> 00:19:10,400
现在窗口有一个位置
500
00:19:10,570 --> 00:19:12,970
您可以在 Inspector 内部看到的那个
501
00:19:13,270 --> 00:19:18,730
我们有 X 629 和 y 300 并且免费
502
00:19:19,200 --> 00:19:23,600
这意味着距离左侧 629 像素
503
00:19:23,870 --> 00:19:27,870
我们距顶部 300 又 3 像素
504
00:19:28,270 --> 00:19:29,400
我们正在谈论的重点
505
00:19:29,400 --> 00:19:30,600
是节点的中心
506
00:19:30,600 --> 00:19:34,170
顺便说一句,这个位置可能有点令人困惑
507
00:19:34,470 --> 00:19:36,200
基本上正在发生的事情是
508
00:19:36,200 --> 00:19:38,330
我们正在创建一个坐标系
509
00:19:38,330 --> 00:19:40,770
原点位于左上角
510
00:19:41,130 --> 00:19:43,570
这一点将是 04 X
第512章
511
00:19:43,930 --> 00:19:45,330
和 04 年
512
00:19:45,330 --> 00:19:48,130
如果你想将任何元素放置在更右侧的位置
513
00:19:48,330 --> 00:19:50,570
你必须增加x
514
00:19:50,930 --> 00:19:53,470
但是如果你想向下移动一个元素
515
00:19:53,770 --> 00:19:56,730
你还必须增加 y
第517章
516
00:19:57,000 --> 00:20:00,300
如果你从高中就习惯了坐标系
517
00:20:00,300 --> 00:20:03,130
原点位于左下角
518
00:20:03,130 --> 00:20:04,770
这可能有点令人困惑
519
00:20:04,900 --> 00:20:06,370
因为你学到的是
第521章
520
00:20:06,370 --> 00:20:07,670
如果你想往右边走
第522章
521
00:20:07,730 --> 00:20:09,570
你必须增加x
第523章
522
00:20:10,370 --> 00:20:14,200
如果你想上升,你必须增加 y
第524章
523
00:20:15,170 --> 00:20:17,900
Goodo 和大多数游戏引擎的内部
第525章
524
00:20:17,970 --> 00:20:20,070
y 将被反转
第526章
525
00:20:20,270 --> 00:20:23,000
这意味着如果你想上升,你必须减少 y
第527章
526
00:20:23,000 --> 00:20:25,470
如果你想下降你必须增加 y
527
00:20:26,130 --> 00:20:27,900
事实上大多数游戏引擎
第529章
528
00:20:27,900 --> 00:20:30,130
大多数计算机图形学都是这样工作的
第530章
529
00:20:30,130 --> 00:20:32,270
所以你必须习惯它
第531章
530
00:20:32,730 --> 00:20:34,600
这需要你一些时间但是
第532章
531
00:20:34,670 --> 00:20:36,470
最终这会变得自然
第533章
532
00:20:36,570 --> 00:20:37,870
只是为了证明
第534章
533
00:20:37,870 --> 00:20:39,600
让我们稍微移动一下这张图片
第535章
534
00:20:39,770 --> 00:20:42,270
现在的展览是 629
第536章
535
00:20:42,330 --> 00:20:44,130
如果我将其更改为 500
第537章
536
00:20:44,400 --> 00:20:46,070
我们向左移动了一点
第538章
537
00:20:46,770 --> 00:20:49,730
如果我将 y 部分更改为 200
第539章
538
00:20:49,800 --> 00:20:51,930
所以我们将从 300 增加到 200
539
00:20:52,400 --> 00:20:54,500
我点击进入,我们正在向上移动
第541章
540
00:20:54,700 --> 00:20:55,970
我们减少了 y
第542章
541
00:20:55,970 --> 00:20:58,130
因此我们已经向上移动了
第543章
542
00:20:58,500 --> 00:21:00,370
这是第一个重要的概念
第544章
543
00:21:00,370 --> 00:21:02,900
现在我们有了一个可以使用的坐标系
第545章
544
00:21:03,400 --> 00:21:04,930
除此之外我们
第546章
545
00:21:04,930 --> 00:21:07,770
不得不说一下级别之间的关系
第547章
546
00:21:07,770 --> 00:21:09,300
和精灵 2d
第548章
547
00:21:09,670 --> 00:21:11,600
现在的级别是父级
第549章
548
00:21:11,800 --> 00:21:14,500
这实际上意味着如果您要更改级别
549
00:21:14,500 --> 00:21:17,370
你也会影响精灵的二维图像
第551章
550
00:21:17,530 --> 00:21:20,470
例如,如果我改变水平仪的旋转
第552章
551
00:21:21,370 --> 00:21:24,500
我们也在旋转图像
第553章
552
00:21:24,530 --> 00:21:26,470
让我缩小一点
第554章
553
00:21:27,070 --> 00:21:29,200
如果我旋转这个级别
第555章
554
00:21:29,370 --> 00:21:31,400
我们正在轮换它的所有子项
第556章
555
00:21:31,700 --> 00:21:32,370
然而
第557章
556
00:21:32,370 --> 00:21:36,370
如果我只是单击 Sprite 2d 并旋转它
第558章
557
00:21:36,600 --> 00:21:38,930
我们只是旋转图像本身
第559章
558
00:21:40,730 --> 00:21:42,900
这也适用于其他属性
第560章
559
00:21:42,900 --> 00:21:45,330
例如,如果我再次点击关卡
第561章
560
00:21:45,530 --> 00:21:49,530
我可以将位置更改为 200 和 300
第562章
561
00:21:50,130 --> 00:21:53,130
现在水平音符位于这个位置
第563章
562
00:21:53,130 --> 00:21:54,570
和相对于此
第564章
563
00:21:54,770 --> 00:21:56,170
我们有精灵
第565章
564
00:21:56,530 --> 00:21:58,270
这意味着在精灵内部
第566章
565
00:21:58,270 --> 00:22:01,170
如果我将位置改回 0 和 0
第567章
566
00:22:01,500 --> 00:22:05,100
我们处于 d 节点的水平点
第568章
567
00:22:05,100 --> 00:22:06,200
之间的相互作用
第569章
568
00:22:06,200 --> 00:22:09,170
理解这些注释中的任何一个都非常重要
第570章
569
00:22:09,700 --> 00:22:12,400
我们总是有父母和孩子
第571章
570
00:22:12,770 --> 00:22:14,330
无论父母发生什么事
第572章
571
00:22:14,330 --> 00:22:16,770
也将应用到孩子身上
第573章
572
00:22:17,000 --> 00:22:19,600
每当我们改变父母时
第574章
573
00:22:19,670 --> 00:22:21,800
我们也在改变孩子
第575章
574
00:22:22,100 --> 00:22:22,570
意思是
第576章
575
00:22:22,570 --> 00:22:24,400
每当我们改变位置时
第577章
576
00:22:24,400 --> 00:22:27,170
父级的旋转、缩放或倾斜
第578章
577
00:22:27,470 --> 00:22:29,470
我们也影响着孩子
第579章
578
00:22:29,800 --> 00:22:32,900
顺便说一句,这也适用于多个音符
第580章
579
00:22:32,970 --> 00:22:34,970
所以如果我选择了级别
第581章
580
00:22:34,970 --> 00:22:36,370
我可以再次点击加号
第582章
581
00:22:36,700 --> 00:22:38,770
你可以在左边看到
第583章
582
00:22:38,770 --> 00:22:40,970
我们最近有合作过的笔记
第584章
583
00:22:41,130 --> 00:22:43,070
我想添加另一个 2d 精灵
第585章
584
00:22:43,670 --> 00:22:45,000
现在我们有第二个精灵
第586章
585
00:22:45,000 --> 00:22:47,100
而这个现在是看不见的
第587章
586
00:22:47,330 --> 00:22:49,200
因为没有质感
第588章
587
00:22:50,200 --> 00:22:51,300
给它一个
第589章
588
00:22:51,300 --> 00:22:53,670
对于这个我想使用不同的图像
589
00:22:53,700 --> 00:22:57,930
假设在图形内部我们有一辆车
第591章
590
00:22:58,200 --> 00:22:59,400
我们有主要的
第592章
591
00:22:59,400 --> 00:23:01,000
这是汽车的主要部分
第593章
592
00:23:01,470 --> 00:23:04,600
我现在想将其拖到纹理中
第594章
593
00:23:04,970 --> 00:23:06,200
在那里我们可以看到
第595章
594
00:23:06,200 --> 00:23:07,600
我们现在可以看到一辆车
第596章
595
00:23:07,600 --> 00:23:09,400
这辆车我们也可以四处走动
第597章
596
00:23:10,070 --> 00:23:11,570
让我大致把它放在这里
597
00:23:12,170 --> 00:23:14,170
现在如果我再次选择级别
598
00:23:14,400 --> 00:23:18,400
我可以旋转,现在我正在旋转
599
00:23:18,670 --> 00:23:21,900
工藤的形象和汽车
600
00:23:22,170 --> 00:23:23,300
我还可以做什么
601
00:23:23,300 --> 00:23:26,500
让我重命名这些 Sprite 2ds
602
00:23:26,500 --> 00:23:27,970
所以他们做什么就很清楚了
603
00:23:28,200 --> 00:23:30,300
如果我双击第一个 Sprite 2d
604
00:23:30,400 --> 00:23:33,070
这个我们就叫它标志吧
605
00:23:33,470 --> 00:23:37,330
第二个 Sprite 2d 将是汽车
606
00:23:37,730 --> 00:23:40,300
我现在能做的就是选择这辆车
607
00:23:40,370 --> 00:23:43,370
并将其拖到徽标图像的顶部
608
00:23:44,770 --> 00:23:47,370
这个正在做的就是转动汽车
609
00:23:47,370 --> 00:23:49,330
进入徽标的子元素
610
00:23:50,100 --> 00:23:53,470
这意味着我们对徽标应用的任何变换
611
00:23:53,530 --> 00:23:55,600
也将应用到汽车上
612
00:23:57,530 --> 00:24:00,730
例如,如果我现在改变徽标的旋转
613
00:24:00,770 --> 00:24:02,730
我们也会旋转汽车
614
00:24:03,170 --> 00:24:06,530
这同样适用于缩放或倾斜
615
00:24:08,400 --> 00:24:11,400
我们总是会得到多重转变
616
00:24:12,270 --> 00:24:13,170
而且当然
617
00:24:13,400 --> 00:24:15,730
水平仍然适用于所有孩子
618
00:24:15,730 --> 00:24:18,700
所以标志和汽车都会受到影响
619
00:24:19,070 --> 00:24:21,330
让我再次使用旋转来演示
620
00:24:21,400 --> 00:24:23,000
我们仍在旋转汽车
621
00:24:23,330 --> 00:24:25,200
我希望这段关系有意义
622
00:24:25,200 --> 00:24:27,200
你基本上总是想知道
623
00:24:27,200 --> 00:24:28,370
父节点的
624
00:24:28,370 --> 00:24:30,730
然后无论有什么孩子
625
00:24:31,130 --> 00:24:33,330
他们的关系以及他们如何相互影响
626
00:24:33,330 --> 00:24:34,730
是非常重要的事情
627
00:24:34,730 --> 00:24:35,870
理解古道
628
00:24:35,930 --> 00:24:38,570
所以这是你绝对想要练习的
629
00:24:38,930 --> 00:24:41,770
事实上,让我们立即练习一下
第631章
630
00:24:42,000 --> 00:24:44,470
我希望你们创造另一个场景
第632章
631
00:24:44,700 --> 00:24:47,070
这个场景将有一个家长注释
第633章
632
00:24:47,070 --> 00:24:48,600
这将是玩家
第634章
633
00:24:48,600 --> 00:24:50,470
这将是一个 2d 笔记
第635章
634
00:24:51,130 --> 00:24:52,000
这个笔记 2D
第636章
635
00:24:52,000 --> 00:24:55,070
将会有一个孩子,它将成为一个精灵
第637章
636
00:24:55,270 --> 00:24:57,800
精灵应该是玩家图像
第638章
637
00:24:57,800 --> 00:24:59,970
你可以在文件系统中找到它
第639章
638
00:25:00,200 --> 00:25:01,870
最后是良好的实践
639
00:25:01,870 --> 00:25:04,200
我想向玩家添加另一个精灵
第641章
640
00:25:04,200 --> 00:25:06,130
这将是激光
第642章
641
00:25:06,670 --> 00:25:08,970
现在暂停视频并尝试解决这个问题
第643章
642
00:25:12,500 --> 00:25:13,770
创建一个新场景
第644章
643
00:25:13,770 --> 00:25:15,470
我应该对此表示抱歉
第645章
644
00:25:15,470 --> 00:25:16,470
但要创造一个新的场景
第646章
645
00:25:16,470 --> 00:25:19,200
您所要做的就是单击这个小加号图标
第647章
646
00:25:19,500 --> 00:25:21,000
现在我们看到另一个场景
第648章
647
00:25:21,370 --> 00:25:24,330
我想创建另一个 2d 场景
第649章
648
00:25:24,670 --> 00:25:27,470
我想将其重命名为
649
00:25:28,100 --> 00:25:28,900
玩家
第651章
650
00:25:29,370 --> 00:25:31,370
让我们立即保存所有这些
第652章
651
00:25:31,870 --> 00:25:35,270
按住 Ctrl s,我想向上折叠一层
第653章
652
00:25:35,270 --> 00:25:37,730
所以我点击向上瓦特箭头
第654章
653
00:25:38,000 --> 00:25:40,200
现在我回到了我的场景文件夹
第655章
654
00:25:40,470 --> 00:25:41,000
在这里
第656章
655
00:25:41,000 --> 00:25:43,870
我想创建另一个我要调用的文件夹
第657章
656
00:25:44,000 --> 00:25:44,800
层
第658章
657
00:25:45,600 --> 00:25:46,770
播放器内部
第659章
658
00:25:46,770 --> 00:25:49,930
我想将场景保存为玩家 tscn
659
00:25:51,170 --> 00:25:53,270
现在我们有另一个场景了
第661章
660
00:25:53,800 --> 00:25:56,400
虽然里面我们看不到任何东西
第662章
661
00:25:56,400 --> 00:25:59,100
因为我们对此没有任何形象
第663章
662
00:25:59,100 --> 00:26:00,400
与选定的玩家
第664章
663
00:26:00,570 --> 00:26:02,730
我想单击加号图标并添加
第665章
664
00:26:02,730 --> 00:26:03,930
另一个 2d 精灵
第666章
665
00:26:04,100 --> 00:26:06,270
我可以从最近的选项卡中选择它
第667章
666
00:26:06,700 --> 00:26:08,330
现在这个精灵 2d
第668章
667
00:26:08,370 --> 00:26:11,330
我想最小化汽车文件夹
第669章
668
00:26:11,330 --> 00:26:13,570
查看图形里面的播放器文件夹
669
00:26:13,570 --> 00:26:15,200
我们有播放器 PNG
第671章
670
00:26:15,530 --> 00:26:17,670
我想拖动纹理
第672章
671
00:26:17,800 --> 00:26:20,070
就这样,我们有了播放器
第673章
672
00:26:20,500 --> 00:26:23,200
最重要的是我想添加另一个精灵
第674章
673
00:26:23,200 --> 00:26:25,270
所以现在用精灵取消选择它
第675章
674
00:26:25,270 --> 00:26:29,130
实际上让我将其重命名为玩家图像
第676章
675
00:26:30,730 --> 00:26:34,300
选择此选项后,我想单击 Ctrl a 或
第677章
676
00:26:34,400 --> 00:26:36,770
图标并添加另一个精灵
第678章
677
00:26:38,170 --> 00:26:40,330
这个精灵将是激光
第679章
678
00:26:40,330 --> 00:26:43,500
所以让我们将其重命名为激光图像
679
00:26:44,970 --> 00:26:46,070
激光图像
第681章
680
00:26:46,070 --> 00:26:47,970
如果我最小化播放器文件夹
第682章
681
00:26:47,970 --> 00:26:50,070
我们从射弹中得到
第683章
682
00:26:50,470 --> 00:26:54,070
在那里我们有一个名为蓝点 PNG 的文件
第684章
683
00:26:54,400 --> 00:26:56,770
我想在纹理上拖动这个
第685章
684
00:26:56,970 --> 00:26:58,930
就这样,我们有了激光
第686章
685
00:26:59,570 --> 00:27:01,000
我们现在能做什么
第687章
686
00:27:01,000 --> 00:27:02,770
是这样安排激光器的
第688章
687
00:27:02,770 --> 00:27:04,270
它看起来好一点
第689章
688
00:27:04,570 --> 00:27:05,470
像这样的东西
689
00:27:06,070 --> 00:27:08,600
稍后我们将动态地产生这些激光器
第691章
690
00:27:08,600 --> 00:27:10,100
所以无论如何我们都会领导这个
第692章
691
00:27:10,100 --> 00:27:11,800
位置并不那么重要
第693章
692
00:27:11,800 --> 00:27:13,300
我只是想让你们练习一下
第694章
693
00:27:13,300 --> 00:27:15,100
在场景中放置注释
694
00:27:15,500 --> 00:27:18,170
好吧,我们有两个场景
695
00:27:18,170 --> 00:27:21,100
我们有一个球员,我们有一个水平
第697章
696
00:27:21,470 --> 00:27:22,670
当我们在这里的时候
697
00:27:22,670 --> 00:27:25,000
我想把节点改成level
698
00:27:25,070 --> 00:27:28,500
位置回到 0 和 0
699
00:27:29,130 --> 00:27:30,400
只是感觉更干净一点
700
00:27:30,400 --> 00:27:33,070
我也想重置旋转
第702章
701
00:27:33,100 --> 00:27:35,930
然后我可以移动精灵和汽车
702
00:27:37,000 --> 00:27:38,700
让它们有些可见
703
00:27:39,470 --> 00:27:41,130
现在我们有几个场景
704
00:27:41,300 --> 00:27:43,300
接下来我要介绍的是
705
00:27:43,300 --> 00:27:46,670
我们如何将一个场景放入另一个场景中
706
00:27:46,900 --> 00:27:48,300
具体来说我想做的事
707
00:27:48,300 --> 00:27:51,170
就是将该玩家放置在关卡内
708
00:27:52,130 --> 00:27:55,930
为此,我们有这个符号,它看起来像一条链
709
00:27:56,500 --> 00:27:59,670
如果你已经结束了,它会说实例化儿童场景
710
00:27:59,800 --> 00:28:02,170
你也可以通过控制转移和a来得到这个
第712章
711
00:28:02,570 --> 00:28:03,930
如果我点击那个
712
00:28:04,200 --> 00:28:06,870
我们获得了游戏中所有可用的场景
第714章
713
00:28:07,000 --> 00:28:09,670
我想要我的播放器 TSCN
714
00:28:10,200 --> 00:28:11,570
如果我点击打开
第716章
715
00:28:12,000 --> 00:28:15,070
我们只需在游戏中获取另一个节点
第717章
716
00:28:15,170 --> 00:28:16,530
这很难看到
717
00:28:16,530 --> 00:28:18,930
但在汽车顶部我们现在有了播放器
718
00:28:18,930 --> 00:28:20,770
我实际上可以移动他
719
00:28:21,270 --> 00:28:23,970
基本上发生了什么我选择了汽车
第721章
720
00:28:23,970 --> 00:28:26,670
在这辆车上我添加了另一个场景
第722章
721
00:28:27,270 --> 00:28:28,970
和我们得到的场景
第723章
722
00:28:29,070 --> 00:28:30,400
从我们之前创建的内容
第724章
723
00:28:30,400 --> 00:28:33,330
玩家,因为我选择了汽车
第725章
724
00:28:33,330 --> 00:28:35,700
这个场景变成了汽车的孩子
第726章
725
00:28:36,200 --> 00:28:37,930
这不完全是我想要的
第727章
726
00:28:37,930 --> 00:28:39,870
所以我要点击播放器
727
00:28:39,870 --> 00:28:41,600
只需将其拖到水平面上即可
第729章
728
00:28:41,970 --> 00:28:45,130
这样我们就有了孩子汽车的标志
第730章
729
00:28:45,130 --> 00:28:47,470
然后我们就有了玩家
第731章
730
00:28:47,870 --> 00:28:50,100
如果我们要改变标志或汽车
第732章
731
00:28:50,100 --> 00:28:51,870
它不会影响玩家
第733章
732
00:28:51,870 --> 00:28:52,700
因为玩家
第734章
733
00:28:52,700 --> 00:28:54,870
不是徽标或汽车的子项
第735章
734
00:28:55,070 --> 00:28:56,870
但它是一个级别的孩子
第736章
735
00:28:57,130 --> 00:29:00,300
真正了解这个系统的重要性
第737章
736
00:29:00,330 --> 00:29:02,200
让我对播放器进行更改
第738章
737
00:29:02,200 --> 00:29:04,530
所以现在我们有一个玩家
第739章
738
00:29:04,670 --> 00:29:06,930
与一个精灵和另一个精灵
第740章
739
00:29:07,270 --> 00:29:10,170
但是如果我添加另一种精灵
第741章
740
00:29:10,500 --> 00:29:12,270
让我和选定的玩家一起
第742章
741
00:29:12,270 --> 00:29:15,070
单击 Ctrl a 并添加另一个精灵
第743章
742
00:29:15,370 --> 00:29:17,000
我想添加手榴弹
第744章
743
00:29:17,700 --> 00:29:20,700
我可以添加纹理并移动它
第745章
744
00:29:20,770 --> 00:29:22,000
我们在这里大致说一下
第746章
745
00:29:22,270 --> 00:29:23,670
而且它很大
第747章
746
00:29:23,730 --> 00:29:26,570
所以我想将比例更改为0.2
第748章
747
00:29:27,200 --> 00:29:29,170
现在真正需要理解的是什么
第749章
748
00:29:29,200 --> 00:29:31,800
是我们对这个场景所做的任何改变
749
00:29:31,970 --> 00:29:33,870
将显示在关卡内部
第751章
750
00:29:33,870 --> 00:29:36,200
所以现在我们可以看到我们有手榴弹
第752章
751
00:29:36,300 --> 00:29:38,670
我们无法从这个关卡场景中选择它
第753章
752
00:29:38,670 --> 00:29:41,870
但在比赛中我们可以对其进行更新
第754章
753
00:29:42,570 --> 00:29:46,070
使用该系统,您基本上可以隔离玩家
第755章
754
00:29:46,070 --> 00:29:48,670
播放器的所有代码都可以在这里
第756章
755
00:29:48,670 --> 00:29:49,970
然后是水平
第757章
756
00:29:49,970 --> 00:29:52,000
将会与这一切分开
第758章
757
00:29:52,770 --> 00:29:55,170
以后这种系统会变得不可思议
第759章
758
00:29:55,170 --> 00:29:56,670
组织你的比赛很重要
第760章
759
00:29:56,800 --> 00:29:59,600
你的场景基本上会变得越来越复杂
第761章
760
00:29:59,600 --> 00:30:01,930
然后你将它们放置在其他场景中
第762章
761
00:30:02,270 --> 00:30:04,530
我想当你开始戈多时
第763章
762
00:30:04,530 --> 00:30:06,730
这可能有点让人难以承受
第764章
763
00:30:06,870 --> 00:30:09,300
所以我强烈建议大家去玩玩
第765章
764
00:30:09,300 --> 00:30:10,600
加上笔记和场景
第766章
765
00:30:10,600 --> 00:30:11,470
以确保你
第767章
766
00:30:11,470 --> 00:30:12,770
明白你在做什么
第768章
767
00:30:13,070 --> 00:30:15,470
事实上让我们来做一个练习
第769章
768
00:30:15,570 --> 00:30:17,870
我希望你们创造另一个场景
第770章
769
00:30:18,470 --> 00:30:20,800
那个场景将会很糟糕
第771章
770
00:30:21,700 --> 00:30:24,870
父注释将再次成为注释 2d
第772章
771
00:30:25,770 --> 00:30:28,270
这张纸条 2d 将有一个孩子
第773章
772
00:30:28,300 --> 00:30:31,130
这将是一个坏的精灵
第774章
773
00:30:31,300 --> 00:30:34,330
您可以找到图形内部的图像,并且
第775章
774
00:30:34,330 --> 00:30:35,200
物体
第776章
775
00:30:36,100 --> 00:30:37,000
最重要的是
第777章
776
00:30:37,000 --> 00:30:38,930
我希望你们添加更多图片
第778章
777
00:30:38,930 --> 00:30:40,870
用于床顶的枕头
第779章
778
00:30:40,870 --> 00:30:42,570
并以这样的方式排列它们
779
00:30:42,570 --> 00:30:44,200
他们看起来还不错
第781章
780
00:30:44,800 --> 00:30:45,870
一旦你拥有了这一切
第782章
781
00:30:46,100 --> 00:30:49,330
破坏关卡内的床实例
第783章
782
00:30:49,900 --> 00:30:52,170
所以我们可以在玩家和汽车旁边看到它
第784章
783
00:30:52,700 --> 00:30:55,130
现在暂停视频并尝试解决这个问题
第785章
784
00:30:58,730 --> 00:31:01,800
回到古多我想创造另一个场景
第786章
785
00:31:01,800 --> 00:31:03,730
为此我点击加号
第787章
786
00:31:03,730 --> 00:31:06,730
或者我可以使用 Ctrl 或 command 和 N
第788章
787
00:31:07,470 --> 00:31:08,670
现在我们有一个空场景
第789章
788
00:31:08,670 --> 00:31:11,530
我想再次创建一个 2d 场景
第790章
789
00:31:12,170 --> 00:31:14,900
我想立即将其重命名为 that
第791章
790
00:31:15,470 --> 00:31:17,200
我也想保存场景
第792章
791
00:31:17,330 --> 00:31:21,000
让我们进入一个文件夹并创建另一个文件夹
第793章
792
00:31:21,000 --> 00:31:24,100
我想我们可以命名这个对象
第794章
793
00:31:25,070 --> 00:31:28,000
我想要在对象内部有坏的 TSCN
第795章
794
00:31:28,200 --> 00:31:32,170
现在我可以点击保存,我们就看到了糟糕的场景
第796章
795
00:31:33,000 --> 00:31:36,200
坏处又是几个精灵
第797章
796
00:31:36,200 --> 00:31:38,370
所以我想添加一个 2d 精灵
797
00:31:38,770 --> 00:31:41,300
并找到 2d 精灵的图像
798
00:31:41,400 --> 00:31:45,400
我想看一些物体,但那里的 PNG 很糟糕
799
00:31:45,900 --> 00:31:48,200
我想在纹理上拖动这个
800
00:31:48,570 --> 00:31:50,930
我们有一只蝙蝠
801
00:31:51,300 --> 00:31:54,570
除此之外我还想加几个枕头
802
00:31:55,000 --> 00:31:57,530
所以选择了蝙蝠
803
00:31:57,730 --> 00:31:59,800
我想添加另一个精灵
804
00:32:00,070 --> 00:32:01,970
这个精灵将成为枕头
805
00:32:01,970 --> 00:32:04,270
让我实际上重命名一切
806
00:32:04,270 --> 00:32:06,570
所以我们有枕头和球棒
807
00:32:07,300 --> 00:32:09,800
对于枕头,我们还没有纹理
808
00:32:09,800 --> 00:32:11,500
虽然这个我们也可以找到
809
00:32:11,500 --> 00:32:12,900
物体内部
810
00:32:12,900 --> 00:32:14,600
你必须向下滚动一点
811
00:32:14,870 --> 00:32:17,070
那里有大枕头和小枕头
812
00:32:17,500 --> 00:32:19,400
让我们添加一个大枕头 Pono
第814章
813
00:32:20,400 --> 00:32:21,770
那里有大枕头
814
00:32:22,000 --> 00:32:24,800
我想稍微移动一下
815
00:32:25,400 --> 00:32:28,270
我还可以使用变换来触摸它
第817章
816
00:32:28,370 --> 00:32:30,000
一个旋转的
817
00:32:30,470 --> 00:32:32,070
你也可以改变比例
818
00:32:32,070 --> 00:32:34,900
让我们把它弄小一点,然后我们可以倾斜它
819
00:32:36,100 --> 00:32:39,000
就像这样,在这里做任何你喜欢的改变
第821章
820
00:32:39,000 --> 00:32:39,970
任何看起来不错的东西
第822章
821
00:32:40,800 --> 00:32:43,570
现在除此之外我想添加另一个枕头
第823章
822
00:32:43,570 --> 00:32:45,870
这意味着选择的床
第824章
823
00:32:46,070 --> 00:32:48,170
我想添加另一个 Sprite 2d
第825章
824
00:32:48,400 --> 00:32:50,870
这个是用来装小枕头的
第826章
825
00:32:50,870 --> 00:32:52,800
所以我把小枕头拖到那里
第827章
826
00:32:53,100 --> 00:32:54,530
我可以拖动这个
827
00:32:54,530 --> 00:32:56,000
我不知道让我们在这里说某个地方
828
00:32:56,670 --> 00:32:58,670
只是为了保持名称不一致
第830章
829
00:32:58,670 --> 00:33:00,530
让我也重命名这个
第831章
830
00:33:00,600 --> 00:33:02,930
我们就叫它小枕头吧
第832章
831
00:33:03,370 --> 00:33:05,930
随之而来的是坏处
第833章
832
00:33:06,000 --> 00:33:08,800
现在我们必须弄清楚如何获得这个糟糕的场景
第834章
833
00:33:08,800 --> 00:33:10,500
进入关卡场景
第835章
834
00:33:10,730 --> 00:33:11,400
为此
第836章
835
00:33:11,400 --> 00:33:14,100
我想必须注意所选的级别
第837章
836
00:33:14,330 --> 00:33:17,400
并通过单击链图标添加另一个场景
第838章
837
00:33:17,730 --> 00:33:19,730
现在我们可以添加另一个场景
第839章
838
00:33:19,730 --> 00:33:20,770
这是蝙蝠
第840章
839
00:33:21,000 --> 00:33:22,400
所以如果我现在点击打开
第841章
840
00:33:22,670 --> 00:33:23,730
我们有蝙蝠
第842章
841
00:33:24,530 --> 00:33:27,270
我可以像任何其他物体一样移动它
第843章
842
00:33:27,270 --> 00:33:29,370
这看起来真的很棒
第844章
843
00:33:30,130 --> 00:33:33,270
在我们结束之前,他们添加了我想要介绍的两件事
第845章
844
00:33:33,570 --> 00:33:36,330
第一个是goodoo中的命名约定
第846章
845
00:33:37,200 --> 00:33:39,930
你可能已经看到了其中的一些小细节
第847章
846
00:33:40,270 --> 00:33:41,530
当我创造蝙蝠时
第848章
847
00:33:41,700 --> 00:33:43,300
我给这个小枕头起了个名字
第849章
848
00:33:43,300 --> 00:33:45,670
枕头小,没有分离
849
00:33:45,670 --> 00:33:48,000
每个单词都以大写字母开头
第851章
850
00:33:48,270 --> 00:33:50,200
这称为帕斯卡案例
第852章
851
00:33:50,200 --> 00:33:52,530
这就是你基本上用的
第853章
852
00:33:52,530 --> 00:33:53,930
任何类型的节点
第854章
853
00:33:54,330 --> 00:33:56,170
意思是单词之间没有空格
第855章
854
00:33:56,170 --> 00:33:58,470
每个单词都以大写字母开头
第856章
855
00:33:58,700 --> 00:34:01,370
然而对于戈多贝的其他一切
第857章
856
00:34:01,370 --> 00:34:03,730
你基本上总是使用蛇盒
第858章
857
00:34:03,730 --> 00:34:05,470
这意味着一切都是小写的
第859章
858
00:34:05,470 --> 00:34:06,530
如果有一个空格
859
00:34:06,530 --> 00:34:07,730
使用下划线
第861章
860
00:34:08,070 --> 00:34:10,070
Gudeau 实际上会自动执行此操作
第862章
861
00:34:10,100 --> 00:34:12,900
所以当我保存任何场景时
第863章
862
00:34:12,900 --> 00:34:15,270
它们总是用小写字母书写
第864章
863
00:34:15,270 --> 00:34:17,200
所以我们有小写字母垫
第865章
864
00:34:17,200 --> 00:34:18,570
玩小写字母
第866章
865
00:34:18,570 --> 00:34:20,530
级别和小写字母等
第867章
866
00:34:20,870 --> 00:34:22,600
你不必遵守这个约定
第868章
867
00:34:22,600 --> 00:34:24,870
但这样做是个好主意
第869章
868
00:34:25,170 --> 00:34:29,670
第二,你必须注意绘图顺序
第870章
869
00:34:29,900 --> 00:34:31,600
例如现在
第871章
870
00:34:31,770 --> 00:34:34,800
球棒位于玩家上方
第872章
871
00:34:35,930 --> 00:34:37,870
我希望这很容易看到
第873章
872
00:34:38,070 --> 00:34:39,470
如果我们移动球员的球棒
第874章
873
00:34:39,470 --> 00:34:41,070
你再也看不到玩家了
第875章
874
00:34:41,570 --> 00:34:43,600
这是因为添加了bat节点
第876章
875
00:34:43,600 --> 00:34:44,900
在玩家节点之后
第877章
876
00:34:45,300 --> 00:34:47,000
如果我移动这两个音符
第878章
877
00:34:48,200 --> 00:34:50,130
所以我点击播放器
第879章
878
00:34:50,130 --> 00:34:52,070
并将其一直移动到底部
879
00:34:52,700 --> 00:34:55,200
现在我们让玩家位于球棒顶部
第881章
880
00:34:56,070 --> 00:34:57,470
基本上将会发生什么
第882章
881
00:34:57,470 --> 00:35:00,000
是你有一个从上到下的层次结构
第883章
882
00:35:00,000 --> 00:35:00,930
至底部
第884章
883
00:35:01,070 --> 00:35:03,330
或者更确切地说从根向外
第885章
884
00:35:03,530 --> 00:35:06,000
这意味着水平一直到底部
第886章
885
00:35:06,170 --> 00:35:08,130
然后我们就会有标志
第887章
886
00:35:08,600 --> 00:35:09,970
那么我们就会遇到不好的情况
第888章
887
00:35:09,970 --> 00:35:11,400
然后我们就会有玩家
第889章
888
00:35:11,670 --> 00:35:13,870
如果一个音符比另一个音符更靠下
889
00:35:13,870 --> 00:35:16,570
该注释将绘制在另一注释之上
第891章
890
00:35:17,200 --> 00:35:19,500
您可以对此行为进行一些更改
第892章
891
00:35:19,500 --> 00:35:21,300
我们稍后会介绍
第893章
892
00:35:21,370 --> 00:35:22,900
但现在请记住
第894章
893
00:35:22,900 --> 00:35:25,300
这些注释的顺序非常重要
894
00:35:25,570 --> 00:35:27,730
所以当你放置所有这些笔记时
895
00:35:27,730 --> 00:35:29,770
你想知道两件事
第897章
896
00:35:30,070 --> 00:35:32,600
第一个是亲子关系
897
00:35:32,670 --> 00:35:35,730
那么哪个节点是其他注释的一部分
898
00:35:35,730 --> 00:35:38,170
除此之外,您还想关注订单
899
00:35:39,000 --> 00:35:41,130
所以如果一个音符在另一个音符下面
900
00:35:41,130 --> 00:35:43,200
这意味着它是绘制在该注释之上的
901
00:35:43,200 --> 00:35:44,400
在实际游戏中
902
00:35:44,930 --> 00:35:46,670
在我完成这个视频之前
903
00:35:46,670 --> 00:35:47,800
我想做的最后一件事
904
00:35:47,800 --> 00:35:49,470
就是真正去玩游戏
905
00:35:49,930 --> 00:35:52,100
显然现在什么都不会发生
906
00:35:52,300 --> 00:35:55,470
但我确实想创建一个基本窗口,以便我们可以看到
907
00:35:55,470 --> 00:35:57,070
玩家会看到的东西
908
00:35:57,600 --> 00:35:59,900
为此你想看看右上角
909
00:36:00,270 --> 00:36:02,100
那里有一个游戏符号
910
00:36:02,500 --> 00:36:03,800
或运行项目
911
00:36:04,270 --> 00:36:05,300
如果我点击那个
912
00:36:05,530 --> 00:36:06,700
佛在告诉我
913
00:36:06,700 --> 00:36:09,130
尚未选择主要场景
914
00:36:10,000 --> 00:36:13,370
我可以单击选择控制台并选择当前
915
00:36:14,330 --> 00:36:15,600
当我们开始游戏时
916
00:36:15,600 --> 00:36:18,100
谷歌希望有一个起始场景
917
00:36:18,670 --> 00:36:21,700
就我而言,我确实想从关卡场景开始
918
00:36:22,170 --> 00:36:24,370
这意味着我想单击选择当前
919
00:36:24,370 --> 00:36:28,070
现在我们可以看到游戏的实际窗口
920
00:36:28,130 --> 00:36:29,670
它现在什么也没做
921
00:36:29,670 --> 00:36:31,870
但至少我们可以看到一些东西
922
00:36:33,930 --> 00:36:36,870
现在我们已经介绍了音符和场景的基础知识
923
00:36:36,870 --> 00:36:38,900
我们必须进入下一个主要话题
924
00:36:38,930 --> 00:36:40,500
这是编码
925
00:36:40,730 --> 00:36:41,800
反过来
926
00:36:41,800 --> 00:36:42,200
是
927
00:36:42,200 --> 00:36:44,500
您将用于所有交互的内容
928
00:36:44,500 --> 00:36:45,970
在你的游戏里面
929
00:36:46,570 --> 00:36:48,100
意思是如果你想旋转
930
00:36:48,100 --> 00:36:51,570
移动或缩放游戏内的任何对象
第932章
931
00:36:51,670 --> 00:36:53,500
你需要添加一些代码
第933章
932
00:36:53,530 --> 00:36:54,700
让我们来谈谈它
第934章
933
00:36:54,700 --> 00:36:58,000
我们必须解决两个主要问题
934
00:36:58,170 --> 00:37:00,600
第 1 点是如何在 Goodau 中编码
第936章
935
00:37:00,670 --> 00:37:04,200
第二是如何影响音符和场景
第937章
936
00:37:04,300 --> 00:37:05,070
我要报道
937
00:37:05,070 --> 00:37:07,500
这两点有些结合
938
00:37:07,500 --> 00:37:10,000
虽然我将从第一个问题开始
939
00:37:10,300 --> 00:37:11,600
让我们从那个开始吧
第941章
940
00:37:12,070 --> 00:37:14,800
好0可以支持多种语言
第942章
941
00:37:14,970 --> 00:37:17,930
最常见也是默认的就是GD脚本
第943章
942
00:37:17,970 --> 00:37:21,500
除此之外,你也可以使用 C 或 C 等
第944章
943
00:37:21,670 --> 00:37:23,870
以及许多其他语言
第945章
944
00:37:24,530 --> 00:37:25,370
话虽如此
第946章
945
00:37:25,470 --> 00:37:26,170
GD脚本
第947章
946
00:37:26,170 --> 00:37:29,700
是默认语言,也是最流行的语言
947
00:37:30,500 --> 00:37:33,870
结果这也是我要使用的
948
00:37:34,670 --> 00:37:37,500
而 gdscript 与 Python 最相似
949
00:37:37,530 --> 00:37:39,870
这里的最半行有点欺骗性
第951章
950
00:37:39,870 --> 00:37:41,530
你几乎可以把它划掉
第952章
951
00:37:41,530 --> 00:37:44,130
简单地说 gdscript 是 Python
第953章
952
00:37:44,400 --> 00:37:47,470
因为这两种语言非常相似
第954章
953
00:37:47,530 --> 00:37:48,770
虽然这么说
第955章
954
00:37:48,800 --> 00:37:49,330
如果你知道的话
第956章
955
00:37:49,330 --> 00:37:51,870
任何编程语言都应该没有问题
第957章
956
00:37:51,870 --> 00:37:52,700
捡起来
957
00:37:53,470 --> 00:37:55,570
让我回顾一下之间的主要区别
第959章
958
00:37:55,570 --> 00:37:57,070
gdscript 和 Python
959
00:37:57,070 --> 00:37:59,170
至少对于本视频而言
960
00:38:00,300 --> 00:38:03,130
就数据类型而言,我们拥有所有常见的数据类型
第962章
961
00:38:03,130 --> 00:38:04,070
我们有整数
第963章
962
00:38:04,070 --> 00:38:06,600
浮动布尔值字符串和字典
第964章
963
00:38:06,900 --> 00:38:07,800
没有两个构建
964
00:38:07,800 --> 00:38:10,130
并且列表已被数组取代
965
00:38:10,200 --> 00:38:11,200
虽然在实践中
966
00:38:11,200 --> 00:38:13,200
你不会注意到太大的差异
967
00:38:13,900 --> 00:38:15,670
第二个变量
968
00:38:15,730 --> 00:38:17,370
他们添加了两种类型的变量
969
00:38:17,370 --> 00:38:20,800
在《好乔》中,我们有普通变量和常量
第971章
970
00:38:21,670 --> 00:38:25,200
普通变量就是普通的 python 变量
第972章
971
00:38:25,500 --> 00:38:27,600
你正在用 VR 键盘宣布这一点
第973章
972
00:38:27,600 --> 00:38:29,330
然后是变量名
第974章
973
00:38:29,370 --> 00:38:31,530
然后你可以分配任何类型的值
第975章
974
00:38:32,070 --> 00:38:33,670
你也有常数
第976章
975
00:38:33,670 --> 00:38:36,200
这些是不允许更改的变量
第977章
976
00:38:36,300 --> 00:38:39,300
所以无论你在创建它时分配给它什么值
977
00:38:39,300 --> 00:38:40,700
这是最终值
第979章
978
00:38:40,700 --> 00:38:41,970
它无法改变
979
00:38:42,470 --> 00:38:43,700
就像蟒蛇一样
980
00:38:43,870 --> 00:38:45,900
一旦你声明了一个变量
第982章
981
00:38:45,970 --> 00:38:48,300
您可以为其分配任何新值
第983章
982
00:38:48,400 --> 00:38:49,000
例如
第984章
983
00:38:49,000 --> 00:38:51,670
如果你不想有像这样的整数 200
984
00:38:51,770 --> 00:38:56,130
例如,您可以分配一个字符串,比如说字符串
985
00:38:56,700 --> 00:38:57,570
像这样
986
00:38:58,200 --> 00:39:01,130
动态改变数据类型是完全没问题的
987
00:39:01,470 --> 00:39:02,570
话虽这么说
988
00:39:02,570 --> 00:39:04,800
你可以在这里进一步看到什么
989
00:39:05,130 --> 00:39:06,870
你可以告诉一个变量
990
00:39:06,870 --> 00:39:09,600
仅处理特定类型的数据
991
00:39:10,070 --> 00:39:12,900
例如变量字符串
992
00:39:13,070 --> 00:39:16,000
作为冒号,然后是字符串关键字
993
00:39:16,270 --> 00:39:17,500
这告诉古多
994
00:39:17,530 --> 00:39:20,570
该变量只能接受一个字符串
995
00:39:20,570 --> 00:39:21,570
没有其他的
996
00:39:22,000 --> 00:39:24,400
同样也适用于整数和布尔值
997
00:39:24,400 --> 00:39:26,300
以及所有其他数据类型
998
00:39:26,530 --> 00:39:27,570
最重要的是
999
00:39:27,600 --> 00:39:30,770
如果你像我一样创建一个数组
1000
00:39:31,130 --> 00:39:32,170
你也可以告诉
1001
00:39:32,170 --> 00:39:34,770
GD 脚本具有特定类型的数据
1002
00:39:34,770 --> 00:39:36,530
该数组内部的类型
1003
00:39:36,530 --> 00:39:39,870
在这种情况下,我们有一个包含整数的数组
1004
00:39:40,470 --> 00:39:42,570
这意味着我们有一个数组
1005
00:39:42,570 --> 00:39:46,570
这个有 1、2、3、4 个简单图像
1006
00:39:47,000 --> 00:39:49,670
接下来我们有函数
1007
00:39:49,800 --> 00:39:52,730
函数的工作原理基本上就像Python一样
1008
00:39:52,900 --> 00:39:54,730
主要的区别是现在
1009
00:39:54,730 --> 00:39:56,200
你没有使用定义的关键字
1010
00:39:56,200 --> 00:39:57,800
相反,你使用放克
1011
00:39:58,400 --> 00:40:01,470
之后你仍然指定一个函数名称
1012
00:40:01,600 --> 00:40:03,670
然后就可以声明参数了
1013
00:40:04,070 --> 00:40:05,000
最重要的是
1014
00:40:05,000 --> 00:40:06,870
您还可以告诉参数有一个
1015
00:40:06,870 --> 00:40:08,170
某种数据类型
1016
00:40:08,170 --> 00:40:10,530
在这种情况下是整数和字符串
1017
00:40:10,800 --> 00:40:11,530
除此之外
1018
00:40:11,530 --> 00:40:15,100
您还可以指定该函数的返回值
1019
00:40:15,170 --> 00:40:17,130
对于这个函数来说,它是一个布尔值
1020
00:40:17,770 --> 00:40:20,600
如果不指定返回值
1021
00:40:20,600 --> 00:40:23,130
将返回的内容将无效
1022
00:40:23,170 --> 00:40:25,770
这本质上是缺乏价值
1023
00:40:26,670 --> 00:40:28,570
最后就像在Python中一样
1024
00:40:28,570 --> 00:40:30,000
如果你想分配
1025
00:40:30,000 --> 00:40:32,770
函数的特定代码行
1026
00:40:32,970 --> 00:40:34,570
你会使用缩进
1027
00:40:34,570 --> 00:40:36,170
所以在这个例子中
1028
00:40:36,170 --> 00:40:38,400
这个注释告诉我们 return 语句
1029
00:40:38,400 --> 00:40:39,670
属于函数
1030
00:40:40,770 --> 00:40:42,170
如果你了解 Python 的话,再重复一次
1031
00:40:42,170 --> 00:40:44,200
所有这一切都应该非常简单
1032
00:40:45,070 --> 00:40:46,870
接下来我们有流量
1033
00:40:46,870 --> 00:40:49,400
那么我们如何控制代码的流程
1034
00:40:49,400 --> 00:40:51,400
对于那个我们有 if 语句
1035
00:40:51,400 --> 00:40:52,270
我们有线圈
1036
00:40:52,270 --> 00:40:55,100
我们有四个循环以及比较运算符
1037
00:40:55,130 --> 00:40:57,570
所以大于小于大于等于
1038
00:40:57,570 --> 00:40:58,700
所有这些都在那里
1039
00:40:59,000 --> 00:41:00,870
你还有继续和刹车
1040
00:41:01,300 --> 00:41:03,200
这些是主要的区别
1041
00:41:03,200 --> 00:41:05,530
如果您到目前为止并且了解基本的 Python
1042
00:41:05,530 --> 00:41:08,100
你应该很好地掌握GD脚本
1043
00:41:08,330 --> 00:41:08,930
话虽如此
1044
00:41:08,930 --> 00:41:12,100
这是我必须解决的一个非常重要的话题
1045
00:41:12,300 --> 00:41:15,130
姑娘们,你必须这样想
1046
00:41:15,130 --> 00:41:17,170
就是每当你创建一个脚本时
1047
00:41:17,170 --> 00:41:19,600
你总是必须将其添加到笔记中
1048
00:41:19,700 --> 00:41:21,270
笔记只是课程
1049
00:41:21,270 --> 00:41:23,570
使用默认方法和属性
1050
00:41:24,130 --> 00:41:26,270
这意味着如果我们想创建一个脚本
1051
00:41:26,270 --> 00:41:28,930
例如,我们必须将节点添加到 d
1052
00:41:28,970 --> 00:41:30,700
这会创建一个新对象
1053
00:41:30,900 --> 00:41:32,700
这个对象就会有一个位置
1054
00:41:32,700 --> 00:41:34,270
旋转 缩放
1055
00:41:34,270 --> 00:41:36,530
以及所有的属性和方法
1056
00:41:36,530 --> 00:41:37,700
到 d 的节点将有
1057
00:41:38,530 --> 00:41:41,730
然后我们可以用它来覆盖这些默认值
1058
00:41:41,770 --> 00:41:43,600
例如如果我们改变位置
1059
00:41:43,600 --> 00:41:45,900
我们将节点 d 放置在一个新位置
1060
00:41:46,070 --> 00:41:48,570
稍后我将添加很多关于此的示例
1061
00:41:48,700 --> 00:41:49,100
目前
1062
00:41:49,100 --> 00:41:51,270
请记住,每当您创建脚本时
1063
00:41:51,270 --> 00:41:52,400
你将它添加到一个节点
1064
00:41:52,400 --> 00:41:55,070
节点是一个具有属性和方法的类
1065
00:41:55,470 --> 00:41:57,500
现在在我跳进古多之前
1066
00:41:57,500 --> 00:42:00,570
我想介绍另外两件相当次要的事情
1067
00:42:01,130 --> 00:42:01,930
1号
1068
00:42:01,970 --> 00:42:04,730
您将使用很多内置函数
1069
00:42:04,730 --> 00:42:06,700
它们都以下划线开头
1070
00:42:07,000 --> 00:42:08,930
例如我们已经准备好了下划线
1071
00:42:08,930 --> 00:42:11,600
当节点添加到树中时运行
1072
00:42:11,730 --> 00:42:13,600
这基本上意味着我们正在运行这个
1073
00:42:13,600 --> 00:42:15,100
当节点准备好时
1074
00:42:15,330 --> 00:42:17,000
除此之外我们还有流程
1075
00:42:17,000 --> 00:42:19,570
这是在游戏的每一帧上运行的
1076
00:42:20,000 --> 00:42:20,900
还有一些
1077
00:42:20,900 --> 00:42:23,330
但这两个是最重要的
1078
00:42:24,300 --> 00:42:24,930
除此之外
1079
00:42:24,930 --> 00:42:27,800
您还可以从您的节点定位其他节点
1080
00:42:27,800 --> 00:42:29,770
这可以通过两种方式完成
1081
00:42:29,970 --> 00:42:32,570
您可以使用 get node 这是一个函数
1082
00:42:32,570 --> 00:42:34,570
这将返回一个节点
1083
00:42:34,570 --> 00:42:35,870
它想要一个参数
1084
00:42:35,870 --> 00:42:37,900
这是节点路径的字符串
1085
00:42:38,170 --> 00:42:39,870
这个不常用
1086
00:42:39,870 --> 00:42:42,130
因为替代方案看起来像这样
1087
00:42:42,270 --> 00:42:44,470
你有一个带有节点路径的美元符号
1088
00:42:45,470 --> 00:42:48,500
这做同样的事情但它更简洁
1089
00:42:48,500 --> 00:42:48,900
哪个
1090
00:42:48,900 --> 00:42:51,600
这就是为什么你会更频繁地看到这种情况
1091
00:42:52,330 --> 00:42:52,870
好吧
1092
00:42:52,870 --> 00:42:54,900
至此我们已经涵盖了一大堆理论
1093
00:42:54,900 --> 00:42:56,330
让我们真正进入古多
1094
00:42:56,330 --> 00:42:58,200
让我们尝试一下这一切
1095
00:42:59,330 --> 00:43:02,600
我们回到了之前创建的场景
1096
00:43:02,600 --> 00:43:04,900
现在很乱
1097
00:43:04,900 --> 00:43:07,000
所以我想清理一下
1098
00:43:07,370 --> 00:43:09,070
我想摆脱玩家
1099
00:43:09,070 --> 00:43:11,730
所以我只是选择它然后单击删除
1100
00:43:12,730 --> 00:43:13,070
古多
1101
00:43:13,070 --> 00:43:15,130
会询问我是否要删除玩家备注
1102
00:43:15,130 --> 00:43:16,470
我确实想这么做
1103
00:43:16,670 --> 00:43:20,300
我也想摆脱蝙蝠所以删除
1104
00:43:20,530 --> 00:43:22,370
我也想把车扔掉
1105
00:43:22,600 --> 00:43:24,570
现在除了点击键盘上的引线之外
1106
00:43:24,570 --> 00:43:25,900
您也可以右键单击
1107
00:43:25,970 --> 00:43:28,800
在某处我们处于领先地位
1108
00:43:28,800 --> 00:43:29,870
一直在底部
1109
00:43:32,100 --> 00:43:34,270
这只会给我们留下标志
1110
00:43:34,270 --> 00:43:36,800
作为场景内唯一的节点
1111
00:43:39,370 --> 00:43:40,500
现在我
1112
00:43:40,500 --> 00:43:43,530
想要将所有值返回到默认状态
1113
00:43:43,530 --> 00:43:44,900
所以旋转应该是0
1114
00:43:44,900 --> 00:43:47,130
并且位置也应该是 0 和 0
1115
00:43:47,300 --> 00:43:49,970
这样我们就有了一个非常基本的场景
1116
00:43:50,100 --> 00:43:50,930
如果你跟着
1117
00:43:50,930 --> 00:43:51,530
迄今为止
1118
00:43:51,530 --> 00:43:53,670
你不必最后清理现场
1119
00:43:53,700 --> 00:43:54,600
我只是去做而已
1120
00:43:54,600 --> 00:43:56,870
让我的事情更有条理
1121
00:43:57,600 --> 00:44:01,300
现在将脚本添加到任何类型的节点
1122
00:44:01,300 --> 00:44:03,970
你必须使用左上角的符号
1123
00:44:03,970 --> 00:44:07,100
这是一个带有加号的小卷轴
1124
00:44:07,400 --> 00:44:10,130
在我点击它之前你必须意识到
1125
00:44:10,270 --> 00:44:12,470
取决于您选择的节点
1126
00:44:12,600 --> 00:44:13,770
如果你点击按钮
1127
00:44:13,770 --> 00:44:16,670
您将向该特定节点附加一个脚本
1128
00:44:16,730 --> 00:44:17,600
因为记得
1129
00:44:17,670 --> 00:44:19,000
每当您创建脚本时
1130
00:44:19,000 --> 00:44:21,870
它总是必须附加到一个节点
第1132章
1131
00:44:22,400 --> 00:44:25,900
就我而言,我想将脚本附加到徽标 Sprite
1132
00:44:26,130 --> 00:44:27,500
所以我选择了这个
1133
00:44:27,530 --> 00:44:30,400
我单击该符号,然后我们会看到一个新对话框
1134
00:44:30,570 --> 00:44:32,930
在那里我们可以选择一些东西
1135
00:44:33,000 --> 00:44:34,270
首先是语言
第1137章
1136
00:44:34,270 --> 00:44:36,900
虽然现在我们只有GD脚本
1137
00:44:37,770 --> 00:44:40,530
然后我们就继承了,这就是 sprite2d
第1139章
1138
00:44:42,100 --> 00:44:44,470
这是一个你基本上不想改变的选项
1139
00:44:44,730 --> 00:44:46,700
然后我们有类名你可以忽略它
1140
00:44:46,800 --> 00:44:48,270
然后我们得到一个模板
第1142章
1141
00:44:48,670 --> 00:44:50,900
对于这个你想保留默认值
第1143章
1142
00:44:50,900 --> 00:44:52,100
别太担心它
1143
00:44:52,270 --> 00:44:53,530
然后我们已经内置了脚本
1144
00:44:53,530 --> 00:44:54,970
你也可以忽略这个
1145
00:44:54,970 --> 00:44:57,200
最后我们有了路径
第1147章
1146
00:44:57,200 --> 00:45:00,070
这是我们要保存脚本的地方
1147
00:45:00,200 --> 00:45:03,730
就我而言,我想看看
1148
00:45:03,730 --> 00:45:05,600
假设我想进入文件夹
1149
00:45:05,670 --> 00:45:08,100
并将脚本保存在此处的某个位置
第1151章
1150
00:45:09,270 --> 00:45:10,970
无论如何我稍后都会删除它
第1152章
1151
00:45:10,970 --> 00:45:13,700
但现在我要把它保存在场景中
第1153章
1152
00:45:15,200 --> 00:45:17,070
作为标志点 GD
第1154章
1153
00:45:18,200 --> 00:45:21,670
如果我现在单击“确定”,我们将描述视图
第1155章
1154
00:45:21,670 --> 00:45:24,600
如果您想返回 2d,请单击 2d 顶部
第1156章
1155
00:45:25,000 --> 00:45:26,770
这样你就可以在 2d 之间进行更改
第1157章
1156
00:45:26,770 --> 00:45:27,970
并很容易编写脚本
1157
00:45:28,300 --> 00:45:29,370
最重要的是
第1159章
1158
00:45:29,370 --> 00:45:30,670
您现在还可以看到什么
1159
00:45:30,770 --> 00:45:33,970
是我们的标志旁边有一个图标
1160
00:45:34,070 --> 00:45:35,200
我们有徽标节点
第1162章
1161
00:45:35,200 --> 00:45:37,470
在它的右边我们有一个脚本
1162
00:45:38,000 --> 00:45:39,670
这是告诉你有一个脚本
1163
00:45:39,670 --> 00:45:40,600
附在本注释上
1164
00:45:40,600 --> 00:45:41,730
应该是相当明显的
1165
00:45:42,200 --> 00:45:45,500
除此之外我们现在可以看到几行代码
第1167章
1166
00:45:46,700 --> 00:45:48,470
除此之外你还可以做什么
1167
00:45:48,470 --> 00:45:50,670
右上角有一个展开符号
1168
00:45:50,670 --> 00:45:51,570
如果你点击那个
1169
00:45:51,800 --> 00:45:54,300
您正在最大化代码窗口至少一点点
第1171章
1170
00:45:55,000 --> 00:45:56,870
因为我在小屏幕上工作
第1172章
1171
00:45:56,870 --> 00:45:58,000
我要处理这个问题
第1173章
1172
00:45:58,000 --> 00:46:00,670
如果您有更大的窗户,则没有必要
第1174章
1173
00:46:01,170 --> 00:46:04,300
现在让我们看看我们所看到的
第1175章
1174
00:46:04,500 --> 00:46:07,730
在第一行我们扩展了 Sprite 2d
第1176章
1175
00:46:08,000 --> 00:46:11,470
这非常重要,并且扩展了 Sprite 2d
第1177章
1176
00:46:11,500 --> 00:46:13,500
让我把这个最小化一点
1177
00:46:14,000 --> 00:46:16,000
这扩展了 Sprites 2d
第1179章
1178
00:46:16,300 --> 00:46:18,170
必须与注释相符
1179
00:46:18,170 --> 00:46:19,770
我们已附上脚本 2
第1181章
1180
00:46:20,000 --> 00:46:23,300
所以就我而言,我已将脚本附加到 Sprite 2d
第1182章
1181
00:46:24,100 --> 00:46:26,370
这是我们在上一部分中创建的徽标
第1183章
1182
00:46:27,170 --> 00:46:27,730
基本上
1183
00:46:27,730 --> 00:46:30,470
这个正在做的是创建一个新对象
1184
00:46:30,470 --> 00:46:31,770
来自 2d 精灵
1185
00:46:31,770 --> 00:46:33,500
并添加额外的功能
第1187章
1186
00:46:33,500 --> 00:46:35,500
无论我们稍后添加什么
1187
00:46:36,670 --> 00:46:38,870
但要确保 Sprite 2d 仍然可以工作
第1189章
1188
00:46:38,870 --> 00:46:41,200
我们必须继承Sprite 2d
1189
00:46:41,300 --> 00:46:43,770
这样我们就不会创建某种新数据
1190
00:46:44,770 --> 00:46:46,730
因为这是自动完成的
第1192章
1191
00:46:46,730 --> 00:46:48,600
你不用太担心
1192
00:46:49,270 --> 00:46:51,130
除此之外我们还有两个函数
1193
00:46:51,130 --> 00:46:52,470
我们有一个现成的函数
1194
00:46:52,470 --> 00:46:54,400
我们有一个过程函数
1195
00:46:54,870 --> 00:46:56,730
我之前介绍过这两个问题
1196
00:46:56,970 --> 00:47:00,570
本质上只要节点准备好就会调用ready
1197
00:47:00,930 --> 00:47:03,700
游戏的每一帧都会调用该进程
1198
00:47:04,300 --> 00:47:05,300
如果你真的使用它们
1199
00:47:05,300 --> 00:47:07,070
让我添加一些打印语句
1200
00:47:07,530 --> 00:47:10,300
我想打印准备好的字符串
1201
00:47:10,670 --> 00:47:12,400
当节点准备好时
1202
00:47:12,770 --> 00:47:15,570
然后在进程内部我想打印
1203
00:47:15,730 --> 00:47:17,330
我们称之为进程
1204
00:47:17,870 --> 00:47:19,300
现在我有了
1205
00:47:19,370 --> 00:47:20,970
我可以再次运行整个游戏
1206
00:47:20,970 --> 00:47:22,800
单击右上角的按钮
1207
00:47:23,200 --> 00:47:24,270
所以如果我现在运行这个
1208
00:47:25,870 --> 00:47:28,130
你可以看到让我关上窗户
1209
00:47:29,800 --> 00:47:31,900
在底部我们有输出
1210
00:47:31,970 --> 00:47:33,600
这是你可以看到打印语句的地方
1211
00:47:33,600 --> 00:47:36,730
他们经常可以看到流程
1212
00:47:36,730 --> 00:47:39,170
从一开始我们就已经准备好了
1213
00:47:39,530 --> 00:47:42,800
所有这些都来自这两个函数
1214
00:47:43,470 --> 00:47:46,500
虽然在我们的例子中我们不想打印东西
1215
00:47:46,500 --> 00:47:48,370
我们想要移动东西
1216
00:47:48,970 --> 00:47:50,770
所以我基本上想做的
1217
00:47:50,770 --> 00:47:52,470
是我想更新位置
1218
00:47:52,470 --> 00:47:53,570
精灵的
1219
00:47:54,130 --> 00:47:57,200
为此让我回到二维场景
1220
00:47:57,270 --> 00:47:59,300
如果我点击右侧的标志
1221
00:47:59,300 --> 00:48:00,530
我们有检查员
1222
00:48:00,900 --> 00:48:03,270
我们有变换属性
1223
00:48:03,600 --> 00:48:04,700
我们在那里有位置
1224
00:48:04,700 --> 00:48:06,100
这就是我们想要改变的
1225
00:48:06,100 --> 00:48:08,530
如果你有超过它,你可以看到该财产
1226
00:48:08,530 --> 00:48:09,970
它说位置
1227
00:48:10,870 --> 00:48:12,100
这个工具提示告诉你
1228
00:48:12,100 --> 00:48:13,600
我们如何定位这个属性
1229
00:48:13,600 --> 00:48:17,300
代码意味着如果我们覆盖该位置
1230
00:48:17,400 --> 00:48:19,770
我们可以更新节点的位置
第1232章
1231
00:48:20,270 --> 00:48:22,930
这意味着如果我转到脚本,比方说
1232
00:48:23,070 --> 00:48:24,400
一旦笔记准备好
1233
00:48:24,600 --> 00:48:27,300
我可以给它一个新的位置
1234
00:48:27,400 --> 00:48:31,200
Kudo 有一个非常好的自动完成功能
1235
00:48:31,500 --> 00:48:34,300
所以我们可以为该位置分配一个新值
第1237章
1236
00:48:34,870 --> 00:48:38,470
或者这个值也想要一个向量
1237
00:48:38,930 --> 00:48:41,370
这基本上是一个有两个值的列表
1238
00:48:41,370 --> 00:48:43,130
x 和 ay 值
1239
00:48:43,200 --> 00:48:47,170
这意味着如果我在其中添加 100 和 200
1240
00:48:47,570 --> 00:48:51,470
我们将此精灵向右移动 100 像素
1241
00:48:51,470 --> 00:48:52,930
向下 200 像素
1242
00:48:53,270 --> 00:48:56,200
这就是我们需要更新的位置
1243
00:48:56,200 --> 00:48:57,900
意思是如果我现在运行游戏
1244
00:48:58,700 --> 00:49:02,570
你可以看到我们为精灵设置了一个新位置
1245
00:49:03,800 --> 00:49:07,670
最初它是一种配置,但我们将其下移
第1247章
1246
00:49:07,970 --> 00:49:10,100
那里因为
1247
00:49:10,470 --> 00:49:11,700
准备功能
1248
00:49:13,200 --> 00:49:14,400
最重要的是
1249
00:49:14,670 --> 00:49:16,500
我们还在印刷过程中
第1251章
1250
00:49:16,500 --> 00:49:18,900
因为这里的process函数
第1252章
1251
00:49:19,530 --> 00:49:22,170
但除此之外我们有一个非常好的开始
第1253章
1252
00:49:22,900 --> 00:49:25,870
它还能在进程内部做什么
第1254章
1253
00:49:25,870 --> 00:49:30,100
我们可以定位点x
1254
00:49:31,100 --> 00:49:34,500
然后添加少量,比如说 10
第1256章
1255
00:49:35,700 --> 00:49:37,200
如果我现在再次运行这一切
第1257章
1256
00:49:37,300 --> 00:49:39,600
精灵将移动到我们要去的右边
1257
00:49:42,100 --> 00:49:43,570
基本上将会发生什么
第1259章
1258
00:49:43,770 --> 00:49:45,900
是我们正在增加
1259
00:49:45,900 --> 00:49:48,770
每帧上的位置 x x 10 像素
1260
00:49:48,970 --> 00:49:50,930
这基本上让它移动
第1262章
1261
00:49:50,970 --> 00:49:52,600
再往右一点
1262
00:49:52,700 --> 00:49:55,700
每次我们创建新的游戏形象时
1263
00:49:56,700 --> 00:49:58,500
这将是一些超级基本的东西
1264
00:49:58,500 --> 00:50:00,470
稍微扩展一下
1265
00:50:00,600 --> 00:50:03,900
我们可以为此创建几个变量
1266
00:50:03,900 --> 00:50:04,770
一直在顶部
1267
00:50:04,770 --> 00:50:07,600
在函数之外,您可以使用 VAR
1268
00:50:08,670 --> 00:50:11,100
或 const 与变量名一起
1269
00:50:11,100 --> 00:50:13,270
就我而言,我想创建一个变量
第1271章
1270
00:50:13,400 --> 00:50:15,730
我称这个为职位
第1272章
1271
00:50:17,300 --> 00:50:19,300
因为这将是一个向量 2
第1273章
1272
00:50:19,470 --> 00:50:22,300
我想强制使用某种数据类型
第1274章
1273
00:50:22,330 --> 00:50:23,130
矢量2
第1275章
1274
00:50:24,200 --> 00:50:25,730
现在有一个等号
1275
00:50:25,730 --> 00:50:27,500
我实际上可以分配一个值
第1277章
1276
00:50:27,600 --> 00:50:29,800
因为我需要一个向量 2
1277
00:50:30,470 --> 00:50:32,370
我必须输入向量 2
第1279章
1278
00:50:32,970 --> 00:50:34,930
现在这个向量 2 有几个不错的
1279
00:50:34,930 --> 00:50:36,670
我们可以研究的额外方法
第1281章
1280
00:50:36,730 --> 00:50:39,530
例如如果我添加点和 0
第1282章
1281
00:50:39,870 --> 00:50:42,330
我们正在创建一个带有 0 和 0 的向量
第1283章
1282
00:50:42,700 --> 00:50:45,070
这意味着这将是相同的
第1284章
1283
00:50:46,100 --> 00:50:49,070
作为具有 0 和 0 的向量
1284
00:50:50,000 --> 00:50:50,800
除此之外
1285
00:50:50,900 --> 00:50:53,970
我想以这个速度创建一个常数
第1287章
1286
00:50:53,970 --> 00:50:56,200
因为这不是应该改变的事情
1287
00:50:56,370 --> 00:50:58,270
虽然它应该是一个整数
1288
00:50:58,270 --> 00:50:59,530
所以我要告诉它
1289
00:50:59,530 --> 00:51:02,200
数据类型始终必须是整数
1290
00:51:02,730 --> 00:51:05,870
现在我们假设这个值是 10
第1292章
1291
00:51:07,270 --> 00:51:07,900
接着就,随即
1292
00:51:07,900 --> 00:51:11,000
我们在这个类中创建了两个变量
1293
00:51:11,000 --> 00:51:13,770
这两个变量随处可用
1294
00:51:13,770 --> 00:51:15,470
我们可以在ready中使用它们
1295
00:51:15,470 --> 00:51:17,470
或者我们可以在进程内部使用它们
1296
00:51:17,670 --> 00:51:19,100
或者我们可以在任何其他地方使用它们
1297
00:51:19,100 --> 00:51:21,070
我们自己创建的函数
1298
00:51:21,800 --> 00:51:24,170
这意味着对于该职位
1299
00:51:24,270 --> 00:51:25,730
假设我想更新
1300
00:51:25,730 --> 00:51:28,600
我刚刚创建的 POS 变量
第1302章
1301
00:51:28,600 --> 00:51:30,870
并给它一个向量
1302
00:51:31,130 --> 00:51:33,670
300 和 200
1303
00:51:34,330 --> 00:51:35,130
这本身
1304
00:51:35,130 --> 00:51:37,570
不会以明显的方式影响游戏
1305
00:51:37,570 --> 00:51:38,570
因为现在
1306
00:51:38,570 --> 00:51:40,130
我们创建了一个新变量
1307
00:51:40,130 --> 00:51:41,800
其向量值为 2
1308
00:51:41,900 --> 00:51:44,400
然后我们分配一个新的向量 2 值
1309
00:51:44,570 --> 00:51:47,400
我们实际上并没有更新精灵的位置
1310
00:51:47,600 --> 00:51:50,130
为此我们需要定位属性
1311
00:51:50,330 --> 00:51:51,300
然后给它
1312
00:51:51,300 --> 00:51:53,870
我们刚刚创建的位置变量
1313
00:51:54,600 --> 00:51:57,270
我们可以在流程内部做同样的事情
1314
00:51:57,800 --> 00:52:00,270
而不是直接更新位置注释X
1315
00:52:00,400 --> 00:52:02,900
我想要得到我的暂停点 x
1316
00:52:03,130 --> 00:52:05,100
然后加上等于
1317
00:52:05,770 --> 00:52:06,730
这个速度
1318
00:52:06,870 --> 00:52:10,530
然后我可以为该位置分配一个全新的值
1319
00:52:10,530 --> 00:52:12,130
这就是我们
1320
00:52:12,770 --> 00:52:14,800
这样我就可以再次运行代码
第1322章
1321
00:52:14,900 --> 00:52:17,270
我们会得到类似的结果
1322
00:52:17,300 --> 00:52:18,330
看起来不错
1323
00:52:19,700 --> 00:52:20,870
你还可以做什么
1324
00:52:20,870 --> 00:52:23,100
就是清除里面的局部变量
1325
00:52:23,100 --> 00:52:24,970
你拥有的每一个功能
第1327章
1326
00:52:25,400 --> 00:52:28,170
例如在ready函数内部
1327
00:52:28,170 --> 00:52:29,970
我可以创建一个新变量
1328
00:52:30,000 --> 00:52:32,900
我们称之为测试轮换
1329
00:52:33,570 --> 00:52:36,170
为了价值,我会选择 45
第1331章
1330
00:52:36,270 --> 00:52:38,270
这里的具体数字并不重要
第1332章
1331
00:52:39,730 --> 00:52:42,600
一旦我有了,我就可以轮换
第1333章
1332
00:52:43,530 --> 00:52:44,670
我再次得到
第1334章
1333
00:52:44,670 --> 00:52:45,530
这些名字
第1335章
1334
00:52:45,530 --> 00:52:48,470
将鼠标悬停在检查器内部的值上
1335
00:52:48,470 --> 00:52:49,870
所以我有轮换
第1337章
1336
00:52:49,870 --> 00:52:52,000
如果我克服了它,我们就会轮换
1337
00:52:52,500 --> 00:52:54,070
你确实想记住的一件事
第1339章
1338
00:52:54,070 --> 00:52:56,470
旋转是以辐射度进行的
1339
00:52:56,870 --> 00:52:58,930
所以如果我想使用 45 度
第1341章
1340
00:52:58,930 --> 00:53:01,130
我想使用旋转度数
第1342章
1341
00:53:01,530 --> 00:53:05,070
这意味着在代码内部我想要旋转度数
第1343章
1342
00:53:05,300 --> 00:53:07,970
这将是测试轮换
第1344章
1343
00:53:09,500 --> 00:53:10,530
如果我现在运行这个
第1345章
1344
00:53:10,800 --> 00:53:12,570
我们应该有一个旋转的精灵
1345
00:53:12,570 --> 00:53:14,100
这看起来真的很好
第1347章
1346
00:53:14,170 --> 00:53:16,600
现在精灵旋转了 45 度
1347
00:53:16,870 --> 00:53:17,900
现在记住
第1349章
1348
00:53:17,930 --> 00:53:20,170
本次测试轮换
1349
00:53:20,170 --> 00:53:23,300
是ready函数内部的局部变量
第1351章
1350
00:53:23,470 --> 00:53:26,130
我们无法在进程内部使用它
第1352章
1351
00:53:26,400 --> 00:53:31,600
例如,如果我尝试打印测试轮换
第1353章
1352
00:53:32,530 --> 00:53:34,330
我们会得到一个错误
第1354章
1353
00:53:34,970 --> 00:53:36,470
你已经可以看到
第1355章
1354
00:53:36,470 --> 00:53:38,270
古道告诉我
第1356章
1355
00:53:38,270 --> 00:53:39,470
确定测试轮换
第1357章
1356
00:53:39,470 --> 00:53:41,330
未在当前范围内声明
第1358章
1357
00:53:41,330 --> 00:53:43,170
让我把窗户稍微扩大一点
第1359章
1358
00:53:43,170 --> 00:53:44,130
他们可以更好地看到它
1359
00:53:45,200 --> 00:53:47,570
古道可能非常具有攻击性
第1361章
1360
00:53:47,570 --> 00:53:49,400
可能会非常咄咄逼人地告诉你
第1362章
1361
00:53:49,400 --> 00:53:50,900
代码中的早期错误
第1363章
1362
00:53:51,100 --> 00:53:54,170
这很好,但也可能有点烦人
第1364章
1363
00:53:54,770 --> 00:53:56,670
但在这种情况下它非常有用
1364
00:53:57,200 --> 00:53:57,530
接着就,随即
1365
00:53:57,530 --> 00:54:00,800
我们已经介绍了 GD 脚本最重要的基础知识
第1367章
1366
00:54:01,500 --> 00:54:03,900
因为这是需要理解的非常重要的事情
1367
00:54:03,900 --> 00:54:05,730
我确实想添加一个练习
1368
00:54:05,730 --> 00:54:06,600
在此刻
第1370章
1369
00:54:07,330 --> 00:54:08,470
我希望你们能够创造
第1371章
1370
00:54:08,470 --> 00:54:10,600
另一个变量称为测试量表
第1372章
1371
00:54:10,730 --> 00:54:13,400
确保该数据类型是整数
第1373章
1372
00:54:13,400 --> 00:54:15,370
默认值应该是 1
第1374章
1373
00:54:16,470 --> 00:54:17,870
当游戏准备好时
第1375章
1374
00:54:17,930 --> 00:54:20,700
使用变量将比例更改为 2
第1376章
1375
00:54:21,100 --> 00:54:23,330
最重要的是,当游戏运行时
第1377章
1376
00:54:23,370 --> 00:54:27,100
不断地以很小的量增加规模
第1378章
1377
00:54:27,100 --> 00:54:28,270
选择你喜欢的
第1379章
1378
00:54:28,900 --> 00:54:31,330
现在暂停视频并尝试实现这个
1379
00:54:34,900 --> 00:54:35,970
回到代码中
第1381章
1380
00:54:36,000 --> 00:54:38,500
我想创建另一个变量
第1382章
1381
00:54:38,600 --> 00:54:41,530
我想要一个什么名字来测试量表
第1383章
1382
00:54:42,070 --> 00:54:43,370
除此之外
第1384章
1383
00:54:43,370 --> 00:54:44,970
我想强制指定数据类型
第1385章
1384
00:54:44,970 --> 00:54:46,570
这将是一个整数
1385
00:54:46,570 --> 00:54:48,570
默认值应该是 1
第1387章
1386
00:54:49,570 --> 00:54:52,900
这样我们就创建了一个新变量
1387
00:54:53,900 --> 00:54:56,330
接下来是就绪函数内部的
第1389章
1388
00:54:56,670 --> 00:54:58,930
我想用这个测试量表来改变
1389
00:54:58,930 --> 00:55:01,270
该节点的缩放比例为 2
第1391章
1390
00:55:01,700 --> 00:55:06,500
为此我想获取测试比例并将其设置为 2
第1392章
1391
00:55:06,700 --> 00:55:10,900
接下来让我稍微最小化这个窗口
第1393章
1392
00:55:11,170 --> 00:55:12,770
这样我就能见到检查员
第1394章
1393
00:55:13,000 --> 00:55:14,730
我们想看看这个规模
1394
00:55:15,370 --> 00:55:17,500
在那里你可以看到节点规模
1395
00:55:17,670 --> 00:55:20,670
未缩放的值为 1 和 1
第1397章
1396
00:55:20,900 --> 00:55:22,700
无论你看到什么,两个括号
1397
00:55:22,700 --> 00:55:24,170
这意味着它是一个向量
1398
00:55:25,000 --> 00:55:26,470
问题出在代码内部
1399
00:55:26,470 --> 00:55:28,570
我们使用一个整数作为测试范围
1400
00:55:28,570 --> 00:55:31,370
所以我们必须稍微调整一下
第1402章
1401
00:55:31,970 --> 00:55:33,000
但我们来玩玩
1402
00:55:33,000 --> 00:55:35,730
首先我想更新这个规模
1403
00:55:36,870 --> 00:55:39,870
并且刻度应该是测试刻度
1404
00:55:40,930 --> 00:55:43,570
现在我们已经得到了一个箭头
1405
00:55:43,570 --> 00:55:44,400
再一次
第1407章
1406
00:55:44,400 --> 00:55:45,530
让我延长这个窗口
1407
00:55:45,530 --> 00:55:46,800
这样我们就可以看到发生了什么
第1409章
1408
00:55:47,070 --> 00:55:49,600
我们正在尝试分配一个 INT 类型的值
1409
00:55:49,770 --> 00:55:52,600
到一个想要向量 2 的变量
1410
00:55:52,730 --> 00:55:54,600
所以这是行不通的
1411
00:55:54,930 --> 00:55:57,370
scale 总是希望有一个向量 2
1412
00:55:57,600 --> 00:55:59,570
但我们可以很容易地解释
1413
00:55:59,570 --> 00:56:01,900
我们所要做的就是得到向量 2
1414
00:56:02,130 --> 00:56:06,570
然后传入 X 和 y 的测试尺度
1415
00:56:06,930 --> 00:56:09,870
现在,老好的调试器又高兴了
1416
00:56:10,300 --> 00:56:12,770
这样我就可以运行整个事情
1417
00:56:12,970 --> 00:56:15,870
现在 Good Dough 徽标放大了一倍
1418
00:56:16,130 --> 00:56:16,930
完美的
1419
00:56:17,770 --> 00:56:19,100
这意味着
1420
00:56:19,200 --> 00:56:21,670
我们可以在 process 函数内部工作
第1422章
1421
00:56:21,670 --> 00:56:23,930
不断增加尺寸
1422
00:56:24,570 --> 00:56:27,530
为此我想再次获得测试秤
1423
00:56:28,270 --> 00:56:32,400
并增加一个非常小的量,比如说 0.01
1424
00:56:33,170 --> 00:56:36,170
除此之外我想获得比例属性
1425
00:56:36,370 --> 00:56:39,600
并将其设置为新向量2
第1427章
1426
00:56:39,970 --> 00:56:43,330
具有 X 和 y 的测试尺度
1427
00:56:43,970 --> 00:56:45,530
让我们尝试一下这一切
第1429章
1428
00:56:46,300 --> 00:56:48,930
现在它不再增长
1429
00:56:50,330 --> 00:56:52,600
让我们把它改为 1
第1431章
1430
00:56:52,800 --> 00:56:54,270
现在如果我再次运行这个
第1432章
1431
00:56:54,870 --> 00:56:56,670
这绝对有效
第1433章
1432
00:56:58,470 --> 00:57:00,870
添加0.1的问题
第1434章
1433
00:57:01,070 --> 00:57:04,270
测试尺度总是整数
第1435章
1434
00:57:04,330 --> 00:57:06,900
当我们添加 0.1 时
第1436章
1435
00:57:07,200 --> 00:57:09,530
我们会得到 1.1
第1437章
1436
00:57:10,330 --> 00:57:12,670
并且由于测试规模的值
第1438章
1437
00:57:12,670 --> 00:57:13,930
始终必须是整数
第1439章
1438
00:57:14,070 --> 00:57:15,930
buddhau 只取第一个值
1439
00:57:15,930 --> 00:57:17,130
这将是 1
第1441章
1440
00:57:17,270 --> 00:57:19,570
之后的任何事情都将被忽略
第1442章
1441
00:57:20,930 --> 00:57:22,800
如果我们有流程,效果会更好
第1443章
1442
00:57:22,970 --> 00:57:24,130
但在这种情况下
第1444章
1443
00:57:24,130 --> 00:57:26,530
只有当我们有完整的数字时,该代码才会起作用
第1445章
1444
00:57:26,530 --> 00:57:28,570
比如 1 2 和 3 等等
第1446章
1445
00:57:29,170 --> 00:57:30,400
好吧
第1447章
1446
00:57:30,400 --> 00:57:31,970
我们有几个非常重要的
第1448章
1447
00:57:31,970 --> 00:57:33,530
GD脚本基础知识
第1449章
1448
00:57:34,300 --> 00:57:36,900
话虽如此,还有很长的路要走
1449
00:57:37,130 --> 00:57:39,600
我们现在面临的真正重要的问题
第1451章
1450
00:57:39,600 --> 00:57:41,170
让我尽量减少这一切
第1452章
1451
00:57:41,170 --> 00:57:43,000
然后返回二维场景
第1453章
1452
00:57:43,270 --> 00:57:46,300
现在我们只能影响徽标本身
第1454章
1453
00:57:46,400 --> 00:57:48,800
但如果我们想从水平出发怎么办
第1455章
1454
00:57:48,800 --> 00:57:50,670
然后影响标志
第1456章
1455
00:57:50,870 --> 00:57:52,730
我们现在不能这样做
第1457章
1456
00:57:52,870 --> 00:57:54,300
但这个视频越来越长了
第1458章
1457
00:57:54,300 --> 00:57:56,300
所以让我们在下一个视频中完成所有这些
第1459章
1458
00:57:57,200 --> 00:58:00,100
让我们继续讨论好面团中的编码
1459
00:58:00,270 --> 00:58:03,770
对于这一部分,我想重点关注两件事
第1461章
1460
00:58:04,000 --> 00:58:07,330
第一,从另一个笔记中瞄准一个笔记
第1462章
1461
00:58:07,570 --> 00:58:09,270
这意味着我想使用该级别
第1463章
1462
00:58:09,270 --> 00:58:11,200
注意影响精灵
第1464章
1463
00:58:11,570 --> 00:58:13,800
最重要的是我想顺其自然地工作
第1465章
1464
00:58:13,800 --> 00:58:14,770
所以我们要使用一些
第1466章
1465
00:58:14,770 --> 00:58:16,800
if 语句和一些 for 循环
第1467章
1466
00:58:17,300 --> 00:58:18,200
让我们直接开始吧
第1468章
1467
00:58:18,200 --> 00:58:20,600
如果到目前为止这应该不会太困难
第1469章
1468
00:58:20,970 --> 00:58:22,130
我们回到代码中
第1470章
1469
00:58:22,130 --> 00:58:23,200
你可以看到
第1471章
1470
00:58:23,200 --> 00:58:24,500
我们有一个级别节点
第1472章
1471
00:58:24,500 --> 00:58:26,730
然后是带有脚本的徽标节点
第1473章
1472
00:58:26,930 --> 00:58:29,070
我们在上一部分中所做的所有这些事情
第1474章
1473
00:58:29,800 --> 00:58:31,170
我现在想做的事
第1475章
1474
00:58:31,170 --> 00:58:33,530
就是给关卡注释一个脚本
第1476章
1475
00:58:33,700 --> 00:58:35,900
我通过附加一个新脚本来完成
第1477章
1476
00:58:36,600 --> 00:58:39,730
这个选项的所有默认选项都可以
第1478章
1477
00:58:39,730 --> 00:58:43,100
除了路径之外,我通常不会更改任何其他内容
第1479章
1478
00:58:43,900 --> 00:58:45,370
你大部分时间看到的
1479
00:58:45,370 --> 00:58:47,200
是人们改变了剧本
第1481章
1480
00:58:47,200 --> 00:58:49,730
在它所附加的场景旁边
第1482章
1481
00:58:49,930 --> 00:58:51,130
这意味着就我而言
第1483章
1482
00:58:51,130 --> 00:58:54,070
我想在同一文件夹中添加关卡脚本
第1484章
1483
00:58:54,070 --> 00:58:55,500
我们有关卡场景
第1485章
1484
00:58:55,770 --> 00:58:57,170
这就是我现在所拥有的
第1486章
1485
00:58:57,170 --> 00:58:58,730
所以我要点击打开
第1487章
1486
00:58:59,500 --> 00:59:00,700
然后创建
第1488章
1487
00:59:01,400 --> 00:59:03,930
现在我们可以看到我们有两个脚本符号
第1489章
1488
00:59:03,930 --> 00:59:04,300
因为
1489
00:59:04,300 --> 00:59:06,870
这两个节点都附加了一个脚本
第1491章
1490
00:59:07,600 --> 00:59:10,170
我们也有可用的脚本在这里
第1492章
1491
00:59:11,100 --> 00:59:13,600
在两者之间切换非常好
第1493章
1492
00:59:14,330 --> 00:59:16,100
现在在关卡内
第1494章
1493
00:59:16,100 --> 00:59:17,200
你可以告诉
1494
00:59:17,200 --> 00:59:20,700
我们没有徽标中的功能
1495
00:59:21,130 --> 00:59:23,870
但这只是因为我选择的预设
第1497章
1496
00:59:23,870 --> 00:59:26,900
你完全可以添加恐惧并准备好
1497
00:59:27,170 --> 00:59:28,700
然后你会得到相同的功能
1498
00:59:28,700 --> 00:59:33,470
在那里我可以打印假设级别节点已准备好
1499
00:59:33,930 --> 00:59:37,330
一旦我有了它,我就可以再次运行整个过程
1500
00:59:37,330 --> 00:59:38,870
让我立即关闭它
1501
00:59:39,800 --> 00:59:41,470
再次查看输出
1502
00:59:41,670 --> 00:59:43,570
我们得到了水平注释已准备好
1503
00:59:43,800 --> 00:59:47,270
这意味着这个准备好的功能运行得很好
1504
00:59:48,300 --> 00:59:49,530
这些下划线函数
1505
00:59:49,530 --> 00:59:51,570
你随时都有空
1506
00:59:51,600 --> 00:59:54,000
意味着您始终可以使用ready或process
1507
00:59:54,000 --> 00:59:55,570
以及许多其他的
1508
00:59:56,370 --> 00:59:58,470
让我最小化输出
1509
00:59:58,470 --> 01:00:01,370
然后我们可以在关卡内部做更多的工作
1510
01:00:01,370 --> 01:00:02,170
脚本
1511
01:00:02,670 --> 01:00:05,270
现在我可以运行任何类型的代码
1512
01:00:05,330 --> 01:00:08,070
我们在徽标内部做了同样的事情
1513
01:00:09,170 --> 01:00:11,270
但我想做点别的事
1514
01:00:11,330 --> 01:00:15,170
我想做的是从这个脚本的内部
1515
01:00:15,170 --> 01:00:18,370
GD级 我想更新标志
1516
01:00:18,600 --> 01:00:21,270
假设我想更新轮换
1517
01:00:22,530 --> 01:00:24,070
我们可以很容易做到
1518
01:00:24,270 --> 01:00:27,670
但首先我想回到标志 GD
1519
01:00:27,770 --> 01:00:31,970
在那里我想注释掉测试量表
1520
01:00:31,970 --> 01:00:33,800
因为这一切都扩展得太快了
第1522章
1521
01:00:33,800 --> 01:00:35,600
我们再也看不到发生了什么
1522
01:00:36,070 --> 01:00:37,970
注释掉GD脚本中的代码
1523
01:00:37,970 --> 01:00:40,330
您可以使用 Ctrl 或 command 和 K
1524
01:00:40,600 --> 01:00:42,900
如果您添加您正在添加评论
1525
01:00:43,470 --> 01:00:44,400
或者
第1527章
1526
01:00:44,400 --> 01:00:46,170
您还可以简单地添加主题标签符号
1527
01:00:46,170 --> 01:00:47,700
然后你添加评论
第1529章
1528
01:00:48,070 --> 01:00:51,100
例如,我可以在职位上添加主题标签
1529
01:00:51,100 --> 01:00:52,700
然后你把它注释掉了
第1531章
1530
01:00:54,270 --> 01:00:57,570
两者都可以,我倾向于使用 Ctrl 或命令 K
第1532章
1531
01:00:57,570 --> 01:00:58,900
因为它有点快
第1533章
1532
01:00:58,900 --> 01:01:00,200
但选择你喜欢的
1533
01:01:00,900 --> 01:01:03,270
如果我再次运行代码
1534
01:01:03,970 --> 01:01:05,100
你可以看到
1535
01:01:05,100 --> 01:01:07,730
我们有 Godose 符号向右移动
第1537章
1536
01:01:07,900 --> 01:01:11,400
我们的起始旋转角度为 45 度
1537
01:01:11,400 --> 01:01:12,600
这就是我们现在得到的
第1539章
1538
01:01:13,700 --> 01:01:15,870
我们也注释掉这个
1539
01:01:15,900 --> 01:01:18,730
所以我们从 0 度旋转开始
第1541章
1540
01:01:18,730 --> 01:01:20,470
这看起来是一个好的开始
第1542章
1541
01:01:21,000 --> 01:01:23,470
现在在 GD 层内
第1543章
1542
01:01:23,530 --> 01:01:26,170
我想更改徽标的旋转
第1544章
1543
01:01:27,170 --> 01:01:30,000
为此,我们首先必须获得徽标
第1545章
1544
01:01:30,000 --> 01:01:32,900
这就是我在上一个视频中谈到的
1545
01:01:33,170 --> 01:01:34,670
让我再次调出幻灯片
第1547章
1546
01:01:35,070 --> 01:01:37,100
到最后我谈到了这一点
1547
01:01:37,100 --> 01:01:39,400
我们可以通过两种方式来定位笔记
第1549章
1548
01:01:39,500 --> 01:01:41,000
我们可以使用 get note
1549
01:01:41,000 --> 01:01:42,130
然后是音符路径
第1551章
1550
01:01:42,130 --> 01:01:44,930
或美元符号以及音符路径
第1552章
1551
01:01:45,200 --> 01:01:47,700
这两个都会给我们一个说明
第1553章
1552
01:01:47,770 --> 01:01:50,370
然后在此注释上我们可以更改属性
第1554章
1553
01:01:50,500 --> 01:01:53,500
例如我们可以获取音符路径然后点
第1555章
1554
01:01:53,700 --> 01:01:57,130
ozhtn 我希望你能读到
第1556章
1555
01:01:57,530 --> 01:02:00,130
我们可以简单地附加一个新的向量 2
第1557章
1556
01:02:00,670 --> 01:02:04,870
回到戈多,我想要一张纸条
第1558章
1557
01:02:05,700 --> 01:02:07,000
现在自动完成
第1559章
1558
01:02:07,000 --> 01:02:09,000
已经给了我几个选择
1559
01:02:09,000 --> 01:02:11,000
我们要么有一个不做任何事情的点
第1561章
1560
01:02:11,000 --> 01:02:12,330
或者我们有标志
第1562章
1561
01:02:13,370 --> 01:02:15,070
这样我们就有了标志
第1563章
1562
01:02:15,170 --> 01:02:17,170
例如我们现在可以做什么
第1564章
1563
01:02:17,200 --> 01:02:19,500
就是改变旋转
第1565章
1564
01:02:19,570 --> 01:02:22,130
为此我们需要润滑脂
1565
01:02:23,670 --> 01:02:25,500
我们把它改成 90 度
第1567章
1566
01:02:25,870 --> 01:02:28,100
如果我再次运行所有这些
1567
01:02:28,770 --> 01:02:30,570
我们有 90 度旋转
第1569章
1568
01:02:30,570 --> 01:02:32,170
为了良好的双重象征
第1570章
1569
01:02:32,770 --> 01:02:34,770
这是获取节点的一种方法
第1571章
1570
01:02:34,930 --> 01:02:35,900
或者
第1572章
1571
01:02:35,900 --> 01:02:38,400
你可能会更经常使用的东西
第1573章
1572
01:02:38,400 --> 01:02:39,800
是一个美元符号
第1574章
1573
01:02:39,800 --> 01:02:41,070
然后是
第1575章
1574
01:02:41,600 --> 01:02:44,400
您要定位的注释的名称或路径
第1576章
1575
01:02:44,400 --> 01:02:45,770
在这种情况下标志
第1577章
1576
01:02:46,770 --> 01:02:48,400
如果我再次运行整个场景
第1578章
1577
01:02:48,570 --> 01:02:50,100
我们得到相同的结果
第1579章
1578
01:02:51,330 --> 01:02:54,200
事实上你实际上并不需要输入它
1579
01:02:54,300 --> 01:02:57,500
如果我摆脱它你还可以做什么你可以简单地
第1581章
1580
01:02:57,800 --> 01:03:00,700
选择并单击您想要获取的注释
第1582章
1581
01:03:00,700 --> 01:03:02,930
然后将其拖到代码编辑器中
第1583章
1582
01:03:03,400 --> 01:03:04,730
如果你随后放弃它
第1584章
1583
01:03:04,730 --> 01:03:06,200
你得到了笔记的名字
1584
01:03:06,200 --> 01:03:07,800
或者更确切地说是注释的路径
1585
01:03:07,800 --> 01:03:08,600
一样
第1587章
1586
01:03:09,330 --> 01:03:12,100
我们也可以多次定位
1587
01:03:12,130 --> 01:03:13,100
例如
1588
01:03:13,170 --> 01:03:17,170
我们可以再次使用 funk underscore 过程
1589
01:03:17,900 --> 01:03:19,300
然后得到标志
第1591章
1590
01:03:19,470 --> 01:03:21,000
带有美元符号标志
第1592章
1591
01:03:21,570 --> 01:03:24,700
然后以度为单位的旋转
第1593章
1592
01:03:25,130 --> 01:03:29,670
例如我们可以加上等于 0.1
第1594章
1593
01:03:30,670 --> 01:03:32,100
如果我现在再次运行场景
1594
01:03:33,530 --> 01:03:36,370
我们的旋转速度非常慢
1595
01:03:36,700 --> 01:03:39,130
让我们增加一个相当数量的数字
1596
01:03:39,130 --> 01:03:41,130
假设我想将其提高 1 度
1597
01:03:41,130 --> 01:03:42,570
在游戏的每一帧
1598
01:03:43,770 --> 01:03:46,930
这更加明显,而且确实有效
1599
01:03:47,170 --> 01:03:50,000
为了使它更加明显,我将其更改为 10
1600
01:03:50,100 --> 01:03:51,300
如果我再次运行这个
1601
01:03:52,170 --> 01:03:53,500
更显酷
1602
01:03:53,570 --> 01:03:54,600
这就是我想要的
1603
01:03:54,900 --> 01:03:57,900
这样我们现在就可以瞄准其他笔记了
1604
01:03:58,100 --> 01:04:01,470
接下来我想研究流程
1605
01:04:02,730 --> 01:04:06,730
假设我想添加一个 if 语句 if
1606
01:04:07,470 --> 01:04:11,870
旋转大于180度
1607
01:04:12,670 --> 01:04:15,470
我想将旋转改回零
1608
01:04:15,970 --> 01:04:18,370
为此我们需要一个 if 语句
1609
01:04:19,570 --> 01:04:21,070
我想得到如果
1610
01:04:21,300 --> 01:04:24,270
然后我可以再次瞄准徽标
1611
01:04:24,570 --> 01:04:26,600
我想要轮换
1612
01:04:27,530 --> 01:04:29,670
下划线度数
1613
01:04:30,130 --> 01:04:32,900
如果大于 180
1614
01:04:34,130 --> 01:04:36,900
然后我想得到同样的笔记
1615
01:04:37,000 --> 01:04:38,400
所以我可以复制它
1616
01:04:39,200 --> 01:04:41,500
并将旋转度数设置为0
1617
01:04:41,770 --> 01:04:44,870
我也意识到这应该是一个大写的 l
1618
01:04:45,330 --> 01:04:47,000
对于这两个注释
1619
01:04:47,930 --> 01:04:49,770
你要记住什么
1620
01:04:49,800 --> 01:04:52,800
您可以设置或读取这些属性
1621
01:04:52,800 --> 01:04:54,370
两者都很好
1622
01:04:54,800 --> 01:04:55,930
让我们再次运行这一切
1623
01:04:58,570 --> 01:05:02,530
这很难看到,但让我再跑一次
1624
01:05:02,670 --> 01:05:04,070
它确实有效
1625
01:05:04,070 --> 01:05:06,870
因为古道尔的脸在变换
第1627章
1626
01:05:07,600 --> 01:05:09,170
这不太明显
1627
01:05:09,170 --> 01:05:11,970
但真正重要的是 if 语句
1628
01:05:12,000 --> 01:05:14,200
你基本上添加 if 像 python
1629
01:05:14,200 --> 01:05:15,530
然后条件
第1631章
1630
01:05:15,600 --> 01:05:16,130
对于这个
第1632章
1631
01:05:16,130 --> 01:05:18,930
我们正在将旋转度数与数字进行比较
第1633章
1632
01:05:19,370 --> 01:05:20,670
180 在这种情况下
1633
01:05:21,770 --> 01:05:23,930
你也经常看到的是人们把
1634
01:05:23,930 --> 01:05:25,700
它们周围的括号
1635
01:05:25,800 --> 01:05:27,300
结果是一样的
第1637章
1636
01:05:28,100 --> 01:05:31,330
这是我真正想练习的
1637
01:05:31,930 --> 01:05:34,670
我希望你们更新精灵的位置
第1639章
1638
01:05:34,770 --> 01:05:37,700
如果大于 1000 将其移回 0
1639
01:05:37,800 --> 01:05:41,170
我纯粹是在谈论水平轴
第1641章
1640
01:05:41,530 --> 01:05:44,400
如果这是我们的起始位置 0
第1642章
1641
01:05:44,600 --> 01:05:49,100
我们要添加一条 1000 像素的线
第1643章
1642
01:05:49,770 --> 01:05:52,370
精灵将从位置 0 开始
1643
01:05:52,370 --> 01:05:53,670
并不断地
1644
01:05:53,670 --> 01:05:55,000
向右移动
1645
01:05:56,200 --> 01:05:58,930
一旦达到1000点
第1647章
1646
01:05:58,970 --> 01:06:00,370
我希望你们把它移回来
1647
01:06:00,370 --> 01:06:01,730
到起始位置
第1649章
1648
01:06:02,200 --> 01:06:04,300
白色不会无限向右移动
1649
01:06:05,070 --> 01:06:07,170
所有这些都必须处于水平状态
第1651章
1650
01:06:07,330 --> 01:06:10,370
所以现在暂停视频并尝试实现这个
第1652章
1651
01:06:13,730 --> 01:06:15,200
回到代码中
第1653章
1652
01:06:15,200 --> 01:06:17,470
旋转有点令人困惑
第1654章
1653
01:06:17,470 --> 01:06:19,300
所以我只想摆脱它
1654
01:06:19,300 --> 01:06:22,170
连同评论我们不需要任何东西
1655
01:06:23,800 --> 01:06:26,870
相反,我想得到一个 if 语句
第1657章
1656
01:06:27,170 --> 01:06:29,800
我再次想要获得徽标
1657
01:06:30,670 --> 01:06:33,300
我想获得这个职位
第1659章
1658
01:06:33,300 --> 01:06:35,700
这将返回一个向量 2
1659
01:06:36,500 --> 01:06:40,100
这意味着我可以瞄准 X 或我可以瞄准 y
1660
01:06:40,100 --> 01:06:42,370
就我而言,我只想看看 X
第1662章
1661
01:06:43,130 --> 01:06:46,200
如果大于 1000
第1663章
1662
01:06:46,270 --> 01:06:48,370
我想做点什么,所以冒号
第1664章
1663
01:06:48,370 --> 01:06:49,930
如果我现在按回车键
1664
01:06:50,270 --> 01:06:52,330
我们得到了另一个级别的缩进
1665
01:06:52,970 --> 01:06:54,930
只是看看这是否有效
第1667章
1666
01:06:54,930 --> 01:06:56,370
我要打印
1667
01:06:56,530 --> 01:06:59,530
假设位置超出
第1669章
1668
01:07:00,770 --> 01:07:03,330
这样我就可以再次运行代码
1669
01:07:03,470 --> 01:07:06,900
现在如果我们在某个时刻达到 1,000 像素
第1671章
1670
01:07:06,900 --> 01:07:08,470
我们的位置超出了
第1672章
1671
01:07:08,970 --> 01:07:09,930
据我们所知
第1673章
1672
01:07:09,930 --> 01:07:12,370
这个 if 语句工作得很好
第1674章
1673
01:07:13,530 --> 01:07:16,700
这意味着我们可以再次使用它
第1675章
1674
01:07:16,770 --> 01:07:18,170
让我复制一下
第1676章
1675
01:07:20,300 --> 01:07:22,900
并将位置设置为0
第1677章
1676
01:07:24,500 --> 01:07:26,070
如果我们现在运行代码
第1678章
1677
01:07:26,730 --> 01:07:28,770
我们应该回到零
第1679章
1678
01:07:29,930 --> 01:07:32,170
虽然我们不是
1679
01:07:33,330 --> 01:07:35,200
让我们探讨一下出了什么问题
第1681章
1680
01:07:35,200 --> 01:07:37,100
我非常推荐你
第1682章
1681
01:07:37,100 --> 01:07:39,000
自己调查一下
第1683章
1682
01:07:39,170 --> 01:07:41,670
您可以在徽标中找到所有信息
第1684章
1683
01:07:41,670 --> 01:07:42,870
GD脚本
1684
01:07:43,730 --> 01:07:46,530
我们确实知道这个 if 语句有效
1685
01:07:46,530 --> 01:07:48,770
所以这行有问题
第1687章
1686
01:07:49,900 --> 01:07:55,800
问题出在 GD 徽标脚本内部
1687
01:07:55,970 --> 01:07:59,100
我们将位置存储在这个向量中
1688
01:07:59,100 --> 01:08:00,470
我称之为 POS
1689
01:08:00,800 --> 01:08:03,470
我们正在更新这个 POS 向量
1690
01:08:03,730 --> 01:08:06,370
然后我们将位置设置到 POS
第1692章
1691
01:08:07,170 --> 01:08:10,200
问题本质上是在关卡内部
1692
01:08:10,330 --> 01:08:13,070
当我们更新位置 X 并将其设置为 0 时
1693
01:08:13,500 --> 01:08:16,670
我们实际上将该精灵的位置设置为
1694
01:08:16,700 --> 01:08:17,500
0
1695
01:08:17,500 --> 01:08:20,930
然而,在标志 GD 内部之后发生了什么
1696
01:08:21,270 --> 01:08:23,070
我们正在设定另一个位置
1697
01:08:23,070 --> 01:08:25,070
我们在这里指定的那个
1698
01:08:26,100 --> 01:08:26,970
因为那个
1699
01:08:27,000 --> 01:08:28,370
我们正在覆盖
1700
01:08:28,370 --> 01:08:30,570
我们在这条线内做了什么
1701
01:08:30,770 --> 01:08:32,870
现在我们要做的就是解决这个问题
1702
01:08:33,070 --> 01:08:35,870
就是把位置改为POS
1703
01:08:36,070 --> 01:08:38,700
这样我们就不会更新位置本身
1704
01:08:38,700 --> 01:08:41,370
相反,我们正在更新
1705
01:08:41,770 --> 01:08:45,530
这个负责位置的 POS 向量
1706
01:08:46,500 --> 01:08:47,700
这意味着现在
1707
01:08:48,070 --> 01:08:49,200
这应该有效
第1709章
1708
01:08:50,570 --> 01:08:52,070
我们就这样吧
1709
01:08:52,070 --> 01:08:53,900
这看起来好多了
1710
01:08:54,570 --> 01:08:56,370
它继续完美工作
1711
01:08:56,770 --> 01:08:59,700
基本上我们想要控制位置
1712
01:09:00,270 --> 01:09:03,200
POS 变量是向量 2
1713
01:09:04,570 --> 01:09:07,130
当您定位一个节点时
1714
01:09:07,170 --> 01:09:09,000
在这种情况下的另一个节点是级别
1715
01:09:09,070 --> 01:09:11,300
您可以定位任何属性
1716
01:09:11,300 --> 01:09:14,100
它可以是一些内置的,例如位置
1717
01:09:14,530 --> 01:09:16,400
或者它可以是你拥有的属性之一
1718
01:09:16,400 --> 01:09:17,800
像 POS 一样创建
1719
01:09:17,870 --> 01:09:19,970
你可以同时瞄准两者就好
1720
01:09:20,330 --> 01:09:22,100
最后在我完成这个视频之前
第1722章
1721
01:09:22,130 --> 01:09:23,800
让我们看看秋季循环
1722
01:09:23,800 --> 01:09:26,530
为此我们需要一个数组
1723
01:09:26,800 --> 01:09:30,700
让我们在整个类的范围内创建一个
1724
01:09:30,900 --> 01:09:32,800
我想创建VAR
1725
01:09:33,130 --> 01:09:37,770
一个测试数组,这将是一个数组
第1727章
1726
01:09:38,270 --> 01:09:41,900
那只接受一个字符串
1727
01:09:41,970 --> 01:09:43,200
或者里面的数据
第1729章
1728
01:09:43,770 --> 01:09:45,800
对于数组,您需要方括号
1729
01:09:45,800 --> 01:09:48,330
因为我们里面只有字符串
第1731章
1730
01:09:48,370 --> 01:09:51,270
我们需要单引号或双引号
第1732章
1731
01:09:51,800 --> 01:09:53,100
通常你在古多看到的
第1733章
1732
01:09:53,100 --> 01:09:54,400
是双引号
1733
01:09:54,400 --> 01:09:56,330
但单身也同样有效
1734
01:09:56,530 --> 01:09:58,530
我要添加一些随机单词
1735
01:09:58,530 --> 01:10:00,370
你在这里添加什么并不重要
第1737章
1736
01:10:00,730 --> 01:10:02,530
还有东西
1737
01:10:02,530 --> 01:10:05,530
让我们扩展整个事物,以便我们可以看到所有内容
第1739章
1738
01:10:05,870 --> 01:10:08,930
很酷,现在我们有一个充满字符串的数组
1739
01:10:09,330 --> 01:10:12,270
如果您想单独查看每个值
1740
01:10:12,270 --> 01:10:13,730
你需要一个for循环
第1742章
1741
01:10:13,970 --> 01:10:16,100
这基本上意味着我们想要
第1743章
1742
01:10:16,170 --> 01:10:17,700
然后我们需要一个值的名称
1743
01:10:17,700 --> 01:10:18,770
就像蟒蛇一样
1744
01:10:19,470 --> 01:10:22,700
让我们在测试数组中将其称为 I
1745
01:10:23,300 --> 01:10:24,370
那么我们需要一个冒号
第1747章
1746
01:10:24,370 --> 01:10:27,400
然后在这个 for 循环内部我们可以例如
1747
01:10:27,400 --> 01:10:30,570
如果我现在运行代码,则打印 I
1748
01:10:30,700 --> 01:10:34,130
你可以在底部看到我们有测试你好和东西
1749
01:10:35,370 --> 01:10:37,170
数组的内容
第1751章
1750
01:10:38,470 --> 01:10:41,770
如果你习惯使用Python,这应该感觉很熟悉
第1752章
1751
01:10:42,170 --> 01:10:44,530
或者事实上,如果您了解任何编程语言
第1753章
1752
01:10:44,530 --> 01:10:45,900
这应该不会太难
第1754章
1753
01:10:46,200 --> 01:10:48,530
除此之外,您还可以使用索引
1754
01:10:49,170 --> 01:10:52,370
例如,如果我只想打印第一个值
1755
01:10:52,370 --> 01:10:55,270
我可以打印一个测试数组
第1757章
1756
01:10:55,570 --> 01:10:57,330
然后是索引 0
1757
01:10:58,730 --> 01:11:01,870
如果我们再次运行所有这些,我们会得到测试
第1759章
1758
01:11:01,970 --> 01:11:05,070
这是数组内的第一个值
1759
01:11:05,970 --> 01:11:08,900
所以我希望这一切都相当简单
第1761章
1760
01:11:09,530 --> 01:11:11,100
现在我们正在搬东西
第1762章
1761
01:11:11,100 --> 01:11:13,730
我们必须涵盖一个非常重要的概念
第1763章
1762
01:11:13,730 --> 01:11:15,370
这就是所谓的增量时间
1763
01:11:16,130 --> 01:11:17,200
和古道
1764
01:11:17,200 --> 01:11:17,800
实际上是
1765
01:11:17,800 --> 01:11:20,500
已经抱怨我们没有使用增量时间
第1767章
1766
01:11:20,570 --> 01:11:22,700
现在让我们看看古道
1767
01:11:23,070 --> 01:11:24,300
我们回到编辑器了
第1769章
1768
01:11:24,300 --> 01:11:26,300
如果你看底部
1769
01:11:26,300 --> 01:11:29,130
我们有一个调试器,上面写着 2
第1771章
1770
01:11:30,970 --> 01:11:32,570
如果你点击那个
第1772章
1771
01:11:33,070 --> 01:11:34,470
你得到一些奇怪的东西
第1773章
1772
01:11:34,470 --> 01:11:37,330
但随后我们有一个选项卡显示错误,其中包含 2
第1774章
1773
01:11:37,700 --> 01:11:40,730
那里有错误或警告
第1775章
1774
01:11:40,900 --> 01:11:42,570
现在我们有两个警告
第1776章
1775
01:11:42,570 --> 01:11:45,270
所以如果你超过了这两个,我们会收到警告
第1777章
1776
01:11:45,470 --> 01:11:47,370
两者的警告是相同的
第1778章
1777
01:11:47,770 --> 01:11:50,500
函数中从未使用参数 delta
第1779章
1778
01:11:50,500 --> 01:11:51,330
过程
1779
01:11:51,730 --> 01:11:54,330
如果这是有意的,请在其前面添加下划线
第1781章
1780
01:11:54,330 --> 01:11:55,370
下划线增量
第1782章
1781
01:11:57,000 --> 01:12:00,000
基本上古多现在不喜欢的是
第1783章
1782
01:12:00,170 --> 01:12:02,700
我们有 2 个脚本让我打开它们
1783
01:12:03,200 --> 01:12:06,530
在这两个脚本中我们都使用 Delta
1784
01:12:08,070 --> 01:12:09,000
我们这里有一个
1785
01:12:09,300 --> 01:12:11,570
我们这里还有另一个
第1787章
1786
01:12:12,530 --> 01:12:15,000
Delta 总是带有过程函数
1787
01:12:15,000 --> 01:12:16,970
Goodau 自动插入
第1789章
1788
01:12:17,500 --> 01:12:20,400
那么问题是我们如何使用 Delta
1789
01:12:21,130 --> 01:12:23,730
如果我们不使用它,古道会抱怨什么
第1791章
1790
01:12:24,300 --> 01:12:26,100
对此很好
1792年
1791
01:12:26,170 --> 01:12:28,800
古道实际上为这个添加了一条评论
1793年
1792
01:12:28,930 --> 01:12:30,400
如果我扩大一点
1794年
1793
01:12:32,130 --> 01:12:33,600
我们已经调用了每一帧
1795年
1794
01:12:33,600 --> 01:12:35,470
这适用于过程函数
1795
01:12:35,600 --> 01:12:38,670
delta 是自上一帧以来经过的时间
1797年
1796
01:12:38,970 --> 01:12:40,800
并理解这意味着什么
1797
01:12:40,800 --> 01:12:43,470
我们必须介绍一些理论
1798
01:12:43,670 --> 01:12:45,000
让我打开幻灯片
1799
01:12:45,500 --> 01:12:47,530
当我们在游戏中移动物体时
1800
01:12:47,800 --> 01:12:49,100
他们的速度
1801
01:12:49,100 --> 01:12:51,570
由游戏运行的速度决定
1802
01:12:51,570 --> 01:12:53,930
我稍后会详细解释这一点
1803
01:12:54,470 --> 01:12:56,870
但我们现在要考虑的主要事情
1804
01:12:56,870 --> 01:12:59,930
我们的游戏可以以截然不同的速度运行
1805
01:13:00,400 --> 01:13:01,570
当我谈论速度时
1807年
1806
01:13:01,570 --> 01:13:03,870
我谈论正在生成多少帧
1807
01:13:04,470 --> 01:13:05,300
例如
1809年
1808
01:13:05,300 --> 01:13:07,270
我们的游戏可能在一台非常慢的计算机上运行
1809
01:13:07,270 --> 01:13:09,070
或者在一台非常快的计算机上
1810
01:13:09,470 --> 01:13:10,730
并取决于它运行的位置
1811
01:13:10,730 --> 01:13:12,470
我们可能会得到不同的帧速率
1812
01:13:12,530 --> 01:13:14,800
这可能是一个大问题
1813
01:13:15,670 --> 01:13:17,000
让我们举一些例子
1814
01:13:17,570 --> 01:13:19,370
这是一张桌子
1815
01:13:19,470 --> 01:13:21,570
对于所有三行
1816
01:13:21,570 --> 01:13:24,500
我们希望每帧将对象移动 10 像素
1817
01:13:24,900 --> 01:13:26,770
这实际上是我们已经做过的
1818
01:13:26,770 --> 01:13:28,700
如果我很快跳回 GDO
1819
01:13:28,900 --> 01:13:30,200
当我们移动徽标时
1820
01:13:30,370 --> 01:13:33,330
我们设置位置音符 X+ 等于速度
1822年
1821
01:13:33,400 --> 01:13:36,070
这个速度是 10 像素
1823年
1822
01:13:36,900 --> 01:13:38,870
这意味着游戏的每一帧
1824年
1823
01:13:38,900 --> 01:13:42,000
我们将该位置向右移动了 10 像素
1825年
1824
01:13:43,200 --> 01:13:46,600
下一栏我们有每秒帧数
1826年
1825
01:13:47,170 --> 01:13:49,270
这是由您的计算机决定的
1827年
1826
01:13:49,470 --> 01:13:52,500
例如,在我的计算机上,我有一台速度相当快的计算机
1827
01:13:52,570 --> 01:13:54,300
所以我的游戏可能会运行
1829年
1828
01:13:54,330 --> 01:13:56,530
略高于每秒 60 帧
1830年
1829
01:13:57,370 --> 01:13:58,270
话虽如此
1831年
1830
01:13:58,300 --> 01:13:59,500
另一个人可能有一个非常非常
1832年
1831
01:13:59,500 --> 01:14:01,470
非常好的电脑
1833年
1832
01:14:01,470 --> 01:14:02,770
他们的游戏可能会运行
1834年
1833
01:14:02,800 --> 01:14:05,100
每秒 120 帧甚至更快
1835年
1834
01:14:06,170 --> 01:14:08,270
这个清单可以永远列下去
1836年
1835
01:14:08,270 --> 01:14:10,130
和一些拥有疯狂电脑的人
1837年
1836
01:14:10,130 --> 01:14:13,270
甚至可能有 1,000 帧或更高
1838年
1837
01:14:13,900 --> 01:14:16,900
如果你的电脑速度很慢,则在另一端
1839年
1838
01:14:17,000 --> 01:14:19,570
您可能每秒只能获得 30 帧
1840年
1839
01:14:19,570 --> 01:14:20,730
或更低的东西
1841年
1840
01:14:20,730 --> 01:14:22,300
所以这也可以去
1842年
1841
01:14:23,000 --> 01:14:25,800
最大为 0,此时您根本没有任何帧
1843年
1842
01:14:26,800 --> 01:14:28,730
这个帧率真的很重要
1844年
1843
01:14:28,730 --> 01:14:31,530
因为它影响事物移动的速度
1845年
1844
01:14:31,900 --> 01:14:34,470
例如在这台可能最慢的计算机上
1846年
1845
01:14:34,470 --> 01:14:36,400
但我们每秒只能得到 30 帧
1847年
1846
01:14:36,730 --> 01:14:39,270
如果我们每帧移动 10 个像素
1848年
1847
01:14:39,670 --> 01:14:42,370
我们每秒移动 300 像素
1849年
1848
01:14:42,670 --> 01:14:44,130
这就是总运动
1850年
1849
01:14:44,730 --> 01:14:46,800
这本身就很好
1851年
1850
01:14:46,870 --> 01:14:48,530
但如果帧速率改变
1852年
1851
01:14:48,530 --> 01:14:52,130
所以如果我们得到 60 帧或 120 帧
1853年
1852
01:14:52,200 --> 01:14:54,370
然后我们得到不同类型的运动
1854年
1853
01:14:55,170 --> 01:14:58,770
我们每秒将获得 600 或 1,200 像素
1855年
1854
01:14:59,570 --> 01:15:02,970
这将是一个巨大的问题
1856年
1855
01:15:03,400 --> 01:15:04,270
因为现在
1857年
1856
01:15:04,270 --> 01:15:06,300
取决于游戏运行的计算机
1858年
1857
01:15:06,370 --> 01:15:08,600
我们得到不同的移动速度
1859年
1858
01:15:08,900 --> 01:15:11,130
想象一下你有同样的游戏
1860年
1859
01:15:11,130 --> 01:15:12,470
类似埃尔登环的东西
1861年
1860
01:15:12,470 --> 01:15:15,770
在某些计算机上,它的运行速度是原来的 4 倍
1862年
1861
01:15:15,770 --> 01:15:17,000
比其他人
1863年
1862
01:15:17,070 --> 01:15:17,900
当我说
1864年
1863
01:15:17,930 --> 01:15:19,300
它的运行速度是原来的 4 倍
1865年
1864
01:15:19,300 --> 01:15:21,730
我的意思是角色的移动速度是4
1866年
1865
01:15:21,730 --> 01:15:23,770
速度是另一台计算机上的几倍
1867年
1866
01:15:24,270 --> 01:15:26,570
该游戏实际上将无法玩
1868年
1867
01:15:26,700 --> 01:15:28,570
所以我们必须考虑到这一点
1869年
1868
01:15:29,330 --> 01:15:30,800
这种不一致
1870年
1869
01:15:30,800 --> 01:15:33,470
也不限于不同的电脑
1871年
1870
01:15:34,000 --> 01:15:36,300
因为有些场景比渲染更困难
1872年
1871
01:15:36,300 --> 01:15:39,330
其他人我们甚至可能有不一致的经历
1873年
1872
01:15:39,330 --> 01:15:40,730
在同一台计算机上
1874年
1873
01:15:41,530 --> 01:15:43,330
如果你想象任何类型的视频游戏
1875年
1874
01:15:43,470 --> 01:15:46,400
有时你的房间很小,物品很少
1876年
1875
01:15:46,400 --> 01:15:48,470
有时你有一个巨大的区域
1877年
1876
01:15:48,470 --> 01:15:50,400
有大量的东西
1878年
1877
01:15:50,730 --> 01:15:54,170
显然面积越大跑起来就越困难
1879年
1878
01:15:54,600 --> 01:15:55,500
你不想要
1880年
1879
01:15:55,500 --> 01:15:57,100
具有不同类型的移动速度
1881年
1880
01:15:57,100 --> 01:15:58,470
在不同的场景中
1882年
1881
01:15:58,470 --> 01:15:59,900
所以我们必须考虑到这一点
1883年
1882
01:15:59,900 --> 01:16:02,070
我们想避免这样的事情
1884年
1883
01:16:02,500 --> 01:16:04,970
随着时间的推移,帧速率会下降很多
1885年
1884
01:16:05,470 --> 01:16:07,330
虽然这本身就很好
1886年
1885
01:16:07,330 --> 01:16:08,870
你经常看到它
1887年
1886
01:16:08,900 --> 01:16:11,070
它不应该影响移动速度
1888年
1887
01:16:11,330 --> 01:16:13,800
这么多问题我们该如何解释
1889年
1888
01:16:14,200 --> 01:16:15,900
为此我们有增量时间
1890年
1889
01:16:16,330 --> 01:16:17,500
和增量时间
1891年
1890
01:16:17,570 --> 01:16:20,170
从字面上看只是衡量创建所花费的时间
1892年
1891
01:16:20,170 --> 01:16:21,470
当前帧
1893年
1892
01:16:21,770 --> 01:16:22,670
例如
1894年
1893
01:16:22,670 --> 01:16:25,200
如果我们当前的帧速率是每秒 60 帧
1895年
1894
01:16:25,370 --> 01:16:28,570
那么增量时间是 1 秒除以 60
1896年
1895
01:16:28,930 --> 01:16:31,200
大约17毫秒
1897年
1896
01:16:32,000 --> 01:16:33,800
我们可以使用这些信息
1898年
1897
01:16:33,800 --> 01:16:36,730
保持游戏中任何物体的恒定速度
1899年
1898
01:16:36,730 --> 01:16:38,470
与帧速率无关
1900年
1899
01:16:38,800 --> 01:16:39,670
我们要做的就是
1901年
1900
01:16:39,670 --> 01:16:42,170
是将运动量乘以增量时间
1902年
1901
01:16:42,170 --> 01:16:44,170
它实际上很容易实现
1903年
1902
01:16:44,400 --> 01:16:46,270
但要理解为什么这是有效的
1904年
1903
01:16:46,270 --> 01:16:47,730
让我添加另一张桌子
1905年
1904
01:16:48,530 --> 01:16:50,600
帧速率如何影响游戏
1906年
1905
01:16:50,600 --> 01:16:51,800
当我们有增量时间时
1907年
1906
01:16:52,300 --> 01:16:53,400
这张表是
1908年
1907
01:16:53,400 --> 01:16:56,100
与我们之前看到的有些相似
1909年
1908
01:16:56,670 --> 01:16:59,600
我们仍然有每帧像素的速度
1910年
1909
01:16:59,600 --> 01:17:01,570
然后我们得到帧速率
1911年
1910
01:17:02,730 --> 01:17:05,970
原来我们看到的是这个专栏
1912年
1911
01:17:06,070 --> 01:17:07,270
我们得到的结果
1913年
1912
01:17:07,400 --> 01:17:09,870
根据帧速率不同的运动
1914年
1913
01:17:10,670 --> 01:17:12,100
这真的很糟糕
1915年
1914
01:17:12,100 --> 01:17:13,900
所以我们必须考虑到这一点
1916年
1915
01:17:14,730 --> 01:17:15,600
为此
1917年
1916
01:17:15,730 --> 01:17:18,770
我们添加了另一列增量时间
1918年
1917
01:17:20,300 --> 01:17:21,770
现在取决于帧速率
1919年
1918
01:17:21,770 --> 01:17:23,600
我们得到了不同的增量时间
1920年
1919
01:17:23,700 --> 01:17:25,770
如果我们的帧速率是每秒 30 帧
1921年
1920
01:17:26,070 --> 01:17:28,530
我们只需将 1 秒除以 30
1922年
1921
01:17:28,530 --> 01:17:31,100
增量时间将免费 0.03
1923年
1922
01:17:31,930 --> 01:17:33,470
如果我们的帧率为 60
1924年
1923
01:17:33,470 --> 01:17:36,900
我们将 1 除以 60,得到 70 毫秒
1925年
1924
01:17:36,900 --> 01:17:38,500
或近似的东西
1926年
1925
01:17:38,500 --> 01:17:40,670
如果我们的帧率为 120
1927年
1926
01:17:40,700 --> 01:17:44,170
我们将 1 除以 120 得到 0.08
1928年
1927
01:17:44,470 --> 01:17:48,300
然后我们可以将这些数字用作乘数
1929年
1928
01:17:48,500 --> 01:17:49,670
或帧率
1930年
1929
01:17:49,670 --> 01:17:51,600
这就是最后一栏中发生的情况
1931年
1930
01:17:52,770 --> 01:17:55,270
例如 120 帧
1932年
1931
01:17:55,370 --> 01:17:57,570
我们每帧移动 10 个像素
1933年
1932
01:17:57,600 --> 01:17:59,300
每秒 120 帧
1934年
1933
01:17:59,470 --> 01:18:01,370
乘以增量时间
1935年
1934
01:18:01,730 --> 01:18:04,170
结果是每秒 10 像素
1936年
1935
01:18:04,770 --> 01:18:07,300
更好的可视化方式是这样的
1937年
1936
01:18:07,300 --> 01:18:11,970
0.08 字面意思是 1 除以 100 和 20
1938年
1937
01:18:12,300 --> 01:18:16,400
如果将 100 和 20 乘以 1 除以 120
1939年
1938
01:18:16,670 --> 01:18:18,000
两者互相抵消
1940年
1939
01:18:18,100 --> 01:18:19,930
所以我们实际上还剩下 10 个
1941年
1940
01:18:20,730 --> 01:18:23,930
这适用于所有不同的帧速率
1942年
1941
01:18:24,070 --> 01:18:26,900
帧速率越高,增量时间越短
1943年
1942
01:18:26,930 --> 01:18:29,470
由于这两者按比例移动
1944年
1943
01:18:29,470 --> 01:18:31,270
他们总是互相抵消
1945年
1944
01:18:32,100 --> 01:18:35,300
剩下的就是每秒的实际运动
1946年
1945
01:18:35,300 --> 01:18:36,770
这正是我们想要的
1947年
1946
01:18:37,570 --> 01:18:39,330
所以考虑了增量时间
1948年
1947
01:18:39,330 --> 01:18:41,770
游戏将以相同的速度运行
1949年
1948
01:18:41,770 --> 01:18:43,300
对于任何帧速率
1950年
1949
01:18:43,930 --> 01:18:45,000
让我们来实现它
1951年
1950
01:18:45,700 --> 01:18:46,570
回到谷歌
1952年
1951
01:18:46,570 --> 01:18:47,530
我要做的就是
1953年
1952
01:18:47,570 --> 01:18:51,500
得到我的速度然后乘以增量
1954年
1953
01:18:52,270 --> 01:18:54,470
现在的问题是我是否运行所有这些
1955年
1954
01:18:54,530 --> 01:18:56,370
这会非常非常慢
1956年
1955
01:18:56,370 --> 01:18:58,170
我们基本上已经没有动静了
1957年
1956
01:18:59,400 --> 01:19:00,370
其原因
1958年
1957
01:19:00,800 --> 01:19:03,800
现在的速度是每帧 10 像素
1959年
1958
01:19:03,870 --> 01:19:07,730
增量时间类似于 0.00 0 等等
1960年
1959
01:19:08,570 --> 01:19:09,370
作为结果
1961年
1960
01:19:09,370 --> 01:19:11,900
最终的结果将会非常低
1962年
1961
01:19:11,930 --> 01:19:13,400
每当您使用增量时间时
1963年
1962
01:19:13,400 --> 01:19:15,770
你想要更大的数字
1964年
1963
01:19:16,570 --> 01:19:18,300
我们以 200 为例
1965年
1964
01:19:18,500 --> 01:19:20,300
这将是一个更好的数字
1966年
1965
01:19:20,870 --> 01:19:21,730
我们就这样吧
1967年
1966
01:19:21,970 --> 01:19:25,100
现在我们的运动与之前的运动大致相同
1968年
1967
01:19:25,370 --> 01:19:27,170
if 语句仍然有效
1969年
1968
01:19:27,300 --> 01:19:30,770
但现在重要的区别是这个运动
1970年
1969
01:19:30,970 --> 01:19:33,970
无论帧速率如何,始终相同
1971年
1970
01:19:34,500 --> 01:19:37,700
现在就我而言,我无法轻松控制帧速率
1972年
1971
01:19:37,730 --> 01:19:39,730
所以这有点难以想象
1973年
1972
01:19:39,730 --> 01:19:42,600
但相信我,这是一件很容易实现的事情
1974年
1973
01:19:42,600 --> 01:19:45,270
对于一致的游戏体验非常重要
1975年
1974
01:19:45,570 --> 01:19:48,070
如果你看底部的话
1976年
1975
01:19:48,130 --> 01:19:50,530
调试器现在不再那么不高兴了
1977年
1976
01:19:50,530 --> 01:19:52,500
我们只剩下一个问题了
1978年
1977
01:19:53,330 --> 01:19:56,100
解决这个问题将是你的练习
1979年
1978
01:19:56,530 --> 01:19:59,870
我希望你们在 GD 关卡中使用增量时间
1980年
1979
01:19:59,870 --> 01:20:00,730
进一步来说
1981年
1980
01:20:00,730 --> 01:20:03,530
GD级过程函数内部
1982年
1981
01:20:03,870 --> 01:20:06,270
现在可能并尝试实施这个
1983年
1982
01:20:09,500 --> 01:20:12,870
回到戈多,我想看看 GD 关卡
1984年
1983
01:20:12,930 --> 01:20:16,270
我们有 Delta 的流程
1985年
1984
01:20:17,070 --> 01:20:18,930
对于这一点,我们有两件事
1986年
1985
01:20:19,200 --> 01:20:22,200
我们正在更新轮换
1987年
1986
01:20:22,270 --> 01:20:24,270
然后我们设置位置
1988年
1987
01:20:24,700 --> 01:20:27,000
我们只需要对其中之一使用 delta
1989年
1988
01:20:27,070 --> 01:20:28,570
当我们更新旋转时
1990年
1989
01:20:28,570 --> 01:20:31,200
我们要将此乘以 delta
1991年
1990
01:20:31,730 --> 01:20:32,800
现在记住
1992年
1991
01:20:32,800 --> 01:20:35,700
旋转将会非常慢
1993年
1992
01:20:35,700 --> 01:20:37,330
因为 delta 的数字非常低
1994年
1993
01:20:37,600 --> 01:20:38,570
实际上是
1995年
1994
01:20:39,100 --> 01:20:42,700
现在我们有一个非常非常小的轮换
1996年
1995
01:20:43,970 --> 01:20:45,400
为了让这一点更加明显
1997年
1996
01:20:45,470 --> 01:20:47,670
让我们将其更改为我知道 60
1998年
1997
01:20:49,470 --> 01:20:50,670
那个更明显
1999年
1998
01:20:50,670 --> 01:20:51,670
再一次
2000年
1999
01:20:51,670 --> 01:20:54,000
此旋转现在与帧速率无关
2001年
2000
01:20:54,530 --> 01:20:57,670
我们不需要申请 Delta
2002年
2001
01:20:57,730 --> 01:21:00,500
我们更新位置时的 if 语句
2003年
2002
01:21:00,800 --> 01:21:03,270
因为这不是运动的变化
2004年
2003
01:21:03,330 --> 01:21:06,330
我们只是将框架的位置设置为
2005年
2004
01:21:06,330 --> 01:21:10,070
X 为 0 我们不会持续更新运动
2006年
2005
01:21:10,070 --> 01:21:11,670
我们只做一次
2007年
2006
01:21:11,900 --> 01:21:14,500
因此我们不需要增量时间
2008年
2007
01:21:14,900 --> 01:21:15,770
将来
2009年
2008
01:21:15,770 --> 01:21:17,200
我们也会遇到
2010年
2009
01:21:17,200 --> 01:21:18,770
相当多的功能
2011年
2010
01:21:18,770 --> 01:21:19,930
应用运动
2012年
2011
01:21:19,930 --> 01:21:22,470
在构建中自动使用增量时间
2013年
2012
01:21:22,700 --> 01:21:23,770
所以经常
2014年
2013
01:21:23,770 --> 01:21:25,800
你根本不必考虑增量时间
2015年
2014
01:21:25,900 --> 01:21:28,370
但这是一个非常重要的概念
2016年
2015
01:21:28,370 --> 01:21:30,100
你会经常看到它
2017年
2016
01:21:30,100 --> 01:21:31,930
理解这一点非常重要
2018年
2017
01:21:32,200 --> 01:21:34,200
所以我希望这部分有用
2019年
2018
01:21:34,500 --> 01:21:37,770
对于任何游戏来说,真正重要的部分是玩家的输入
2020年
2019
01:21:37,770 --> 01:21:39,270
那么我们来谈谈这个
2021年
2020
01:21:39,800 --> 01:21:42,170
捕获 Google 中的任何类型的输入
2022年
2021
01:21:42,170 --> 01:21:43,600
有两个步骤
2023年
2022
01:21:43,770 --> 01:21:46,730
第一,我们必须创建一个输入映射
2024年
2023
01:21:46,970 --> 01:21:49,670
基本上这个正在做的是
2025年
2024
01:21:49,670 --> 01:21:52,070
允许您捕获不同类型的输入
2026年
2025
01:21:52,070 --> 01:21:54,200
并将它们存储在某个关键字下
2027年
2026
01:21:54,500 --> 01:21:57,130
例如我们可以得到键盘上的左键
2028年
2027
01:21:57,130 --> 01:21:58,270
和一把钥匙
2029年
2028
01:21:58,270 --> 01:22:00,270
并将它们都存放在左侧
2030年
2029
01:22:00,270 --> 01:22:02,270
输入映射内的键盘
2030
01:22:02,400 --> 01:22:02,730
那样
2031
01:22:02,730 --> 01:22:05,670
我们可以在游戏中访问这两个键
2032
01:22:05,670 --> 01:22:06,600
非常简单地
2033
01:22:06,900 --> 01:22:08,900
我们还可以考虑鼠标操纵杆
2034
01:22:08,900 --> 01:22:10,400
控制器基本上任何东西
2035
01:22:11,470 --> 01:22:12,570
一旦我们拥有了这一切
2036
01:22:12,870 --> 01:22:14,700
我们必须访问输入
2037
01:22:14,800 --> 01:22:16,730
因为 Goodo 有一个输入对象
2038
01:22:16,730 --> 01:22:17,600
这是
2040年
2039
01:22:17,600 --> 01:22:20,200
允许我们捕获各种输入
2040
01:22:20,670 --> 01:22:23,700
所有这些结合起来应该很容易实现
2041
01:22:24,170 --> 01:22:27,300
这是我们迄今为止创建的项目
2042
01:22:27,670 --> 01:22:30,500
我想从创建输入和地图开始
2043
01:22:30,500 --> 01:22:32,600
为此我们必须登顶
2044
01:22:32,600 --> 01:22:35,570
有项目,我们有项目设置
2045
01:22:36,070 --> 01:22:39,000
如果你看顶部,我们有一个输入和地图
2046
01:22:39,000 --> 01:22:41,170
现在它完全是空的
2047
01:22:41,200 --> 01:22:43,500
为此我们必须创建一个新的动作
2048
01:22:43,500 --> 01:22:46,200
首先,这将是一个可以捕获的类别
2050年
2049
01:22:46,200 --> 01:22:47,800
不同种类的输入
2050
01:22:48,500 --> 01:22:51,500
例如我们可以从左边开始
2051
01:22:52,670 --> 01:22:55,100
现在我们有一个叫做向左的动作
2052
01:22:55,270 --> 01:22:58,270
这个动作应该有几个相关的键
2053
01:22:58,370 --> 01:23:00,600
为此我想一直走到右边
2054
01:23:00,600 --> 01:23:03,470
有一个加号,我可以在那里添加一个事件
2055
01:23:04,100 --> 01:23:05,970
这里我们有键盘按键
2056
01:23:05,970 --> 01:23:08,800
鼠标按钮 Drypad 按钮和 Joypad 轴
2057
01:23:08,930 --> 01:23:10,730
基本上任何类型的输入
2058
01:23:11,600 --> 01:23:14,370
现在所有这些的列表变得很长,因为
2059
01:23:14,370 --> 01:23:17,270
键盘上有很多键
2060
01:23:17,300 --> 01:23:19,500
所以大多数时候你不会去查看清单
2061
01:23:19,500 --> 01:23:22,200
相反,您单击“监听输入”
2062
01:23:22,330 --> 01:23:22,700
然后你
2063
01:23:22,700 --> 01:23:24,330
按键盘上您想要的按钮
2064
01:23:24,600 --> 01:23:27,200
所以就我而言,我想要左按钮
2065
01:23:27,200 --> 01:23:28,270
所以我点击左边
2066
01:23:28,700 --> 01:23:31,270
这样我们就可以自动找到密钥
2067
01:23:31,400 --> 01:23:32,130
我可以点击
2068
01:23:32,130 --> 01:23:34,770
好的,现在我们有了左侧的物理按钮
2069
01:23:34,770 --> 01:23:36,700
这是键盘上的左键
2070
01:23:36,870 --> 01:23:39,570
我们还可以为此操作添加第二个键
2071
01:23:39,800 --> 01:23:41,970
我通过点击加号再次执行此操作
2072
01:23:41,970 --> 01:23:45,200
我想添加的另一个键是 a 按钮
2073
01:23:45,530 --> 01:23:48,170
所以我只需单击 a 然后单击“确定”
2074
01:23:49,330 --> 01:23:51,400
这样我们就剩下了一个
2075
01:23:51,400 --> 01:23:54,070
他们都代表游戏中的左派
2076
01:23:54,670 --> 01:23:57,800
稍后我们将添加更多操作
2077
01:23:57,970 --> 01:23:59,700
但现在我想保持简单
2078
01:23:59,700 --> 01:24:01,270
那么让我们结束吧
2079
01:24:01,770 --> 01:24:04,200
输入映射并看看我们如何使用它
2080
01:24:04,800 --> 01:24:07,330
这将我们带入第二步
2081
01:24:07,370 --> 01:24:09,130
我们必须访问输入映射
2082
01:24:09,130 --> 01:24:11,070
这将在代码中发生
2083
01:24:11,070 --> 01:24:13,300
所以我们说在关卡内部
2084
01:24:13,770 --> 01:24:15,070
我要打开代码
2085
01:24:15,070 --> 01:24:17,500
并对所有这些进行一些更新
2086
01:24:18,330 --> 01:24:19,670
我们要写的代码
2087
01:24:19,670 --> 01:24:21,970
必须位于流程函数内部
2088
01:24:22,130 --> 01:24:23,400
因为这个将要运行
2089
01:24:23,400 --> 01:24:25,070
在游戏的每一帧
2090
01:24:25,370 --> 01:24:27,400
如果我们尝试运行代码
2091
01:24:27,400 --> 01:24:29,170
对于ready函数中的输入
2092
01:24:29,170 --> 01:24:30,130
这是行不通的
2093
01:24:30,300 --> 01:24:31,370
因为准备好只是
2094
01:24:31,370 --> 01:24:33,700
游戏开始时运行一帧
2095
01:24:34,130 --> 01:24:35,970
之后它就不会做任何事情
2096
01:24:35,970 --> 01:24:38,370
所以检查那里的输入是没有意义的
2097
01:24:38,670 --> 01:24:40,700
这意味着进程内部
2098
01:24:40,700 --> 01:24:42,470
我要添加几行
2099
01:24:42,470 --> 01:24:44,070
以及最重要的一行
2100
01:24:44,400 --> 01:24:46,270
将被输入
2101
01:24:46,300 --> 01:24:48,770
你可以看到古道已经在给这个上色了
2102
01:24:48,930 --> 01:24:50,970
这意味着这是一个特殊的关键字
2103
01:24:51,870 --> 01:24:53,070
了解它在做什么
2104
01:24:53,070 --> 01:24:55,400
我认为最好的开始方式
2105
01:24:55,400 --> 01:24:57,300
这是看文档
2106
01:24:57,370 --> 01:24:59,900
古道真是太棒了
2107
01:25:00,070 --> 01:25:00,600
因为
2108
01:25:00,600 --> 01:25:03,500
如果按住 Ctrl 或 command 键并单击输入
2109
01:25:03,800 --> 01:25:06,970
然后 Gudeau 正在打开内置文档
2110
01:25:07,470 --> 01:25:09,570
然后你就可以阅读任何内容
2111
01:25:09,900 --> 01:25:13,100
您可能需要有关输入对象的信息
2112
01:25:13,130 --> 01:25:15,530
有很多所以让我扩展整个事情
2113
01:25:16,500 --> 01:25:19,100
并且有所有的方法
2114
01:25:19,100 --> 01:25:20,800
你在输入对象上有
2115
01:25:21,000 --> 01:25:23,900
如果我稍微拧紧一点的话,这真的很容易
2116
01:25:23,970 --> 01:25:25,870
是 是 已按下操作
2117
01:25:25,970 --> 01:25:27,300
这只是检查
2118
01:25:27,300 --> 01:25:29,570
如果某个动作被触发
2119
01:25:29,570 --> 01:25:31,100
或按下键盘
2120
01:25:31,170 --> 01:25:32,400
我们用这个吧
2121
01:25:32,900 --> 01:25:33,400
为了那个原因
2122
01:25:33,400 --> 01:25:35,870
我将停止在全屏模式下使用它
2123
01:25:35,870 --> 01:25:37,570
然后回到原来的水平
2124
01:25:37,800 --> 01:25:41,100
在输入时我想运行一个方法,所以我添加点
2125
01:25:41,100 --> 01:25:42,900
然后是行动
2126
01:25:43,500 --> 01:25:45,130
在那里我们可以选择刚刚按下
2127
01:25:45,130 --> 01:25:47,000
刚刚释放或只是按下
2128
01:25:47,000 --> 01:25:49,070
我想跟着行动
2129
01:25:49,530 --> 01:25:51,670
现在我们可以寻找各种动作
2130
01:25:51,700 --> 01:25:54,370
Good Dough 有几个预定义的
2131
01:25:54,370 --> 01:25:55,800
虽然一直在顶部
2132
01:25:55,800 --> 01:25:57,470
我们拥有我们所创造的
2133
01:25:57,470 --> 01:25:58,770
这就是所谓的左
2134
01:25:59,930 --> 01:26:03,100
现在每当我们按下按钮时
2135
01:26:03,100 --> 01:26:05,330
或者更确切地说,每当玩家按下按钮时
第2137章
2136
01:26:05,500 --> 01:26:08,070
这将返回一个布尔值,表示
2137
01:26:08,070 --> 01:26:09,470
正确或错误
2138
01:26:09,470 --> 01:26:10,700
true 如果按钮被按下
2139
01:26:10,700 --> 01:26:12,400
如果不按下则折叠
2140
01:26:12,770 --> 01:26:15,130
这意味着我们可以简单地打印所有这些
2141
01:26:15,330 --> 01:26:17,870
我们应该看到正确或错误
2142
01:26:18,400 --> 01:26:19,400
让我运行代码
2143
01:26:19,400 --> 01:26:22,130
现在我遇到了错误,因为没有按下键
2144
01:26:22,130 --> 01:26:25,930
但如果我点击左键或
2145
01:26:26,200 --> 01:26:27,370
我们正在变得真实
2146
01:26:27,700 --> 01:26:30,470
这意味着我们可以注册按键
2147
01:26:31,570 --> 01:26:33,270
很酷,这个效果很好
2148
01:26:33,900 --> 01:26:35,270
如果你想知道
2149
01:26:35,270 --> 01:26:38,730
如果我返回输入并查看
2150
01:26:38,800 --> 01:26:40,800
我们刚刚使用的方法
第2152章
2151
01:26:41,600 --> 01:26:43,400
我们开始采取行动
2152
01:26:43,900 --> 01:26:46,200
is action press 和 有什么区别
2153
01:26:46,200 --> 01:26:47,930
是否刚刚按下操作
2154
01:26:48,600 --> 01:26:50,870
为此,您只需单击该方法即可
2155
01:26:50,870 --> 01:26:53,670
然后你就可以得到文档中的条目
2156
01:26:54,000 --> 01:26:56,900
区别基本上在于,只需按下即可执行操作
2157
01:26:56,900 --> 01:26:58,000
只是检查
2158
01:26:58,000 --> 01:26:59,770
按下按钮的动作
2159
01:26:59,870 --> 01:27:01,170
这意味着如果玩家是
2160
01:27:01,170 --> 01:27:03,070
按下按钮并按住按钮
2161
01:27:03,270 --> 01:27:05,170
我们只通过一次
2162
01:27:05,400 --> 01:27:07,730
而按下操作
2163
01:27:08,000 --> 01:27:11,000
我们正在检查被按下的按钮
2164
01:27:11,000 --> 01:27:12,800
所以如果玩家按住按钮
2165
01:27:12,900 --> 01:27:15,470
我们不断得到某种输出
2166
01:27:15,870 --> 01:27:18,530
差异有些微妙
2167
01:27:18,530 --> 01:27:20,300
但这可能非常重要
2168
01:27:20,930 --> 01:27:21,930
如果你玩这个
2169
01:27:21,930 --> 01:27:23,930
它应该变得相当简单
2170
01:27:24,700 --> 01:27:28,270
这样我们就有了键盘输入的基础知识
第2172章
2171
01:27:28,470 --> 01:27:30,770
我们现在要做的就是扩大这一切
2172
01:27:30,770 --> 01:27:32,330
然后我们可以移动玩家
2173
01:27:32,330 --> 01:27:34,930
至少在非常基本的意义上
2174
01:27:35,330 --> 01:27:38,330
首先在项目内部进行项目设置
2175
01:27:38,330 --> 01:27:41,170
我想继续在输入映射内部工作
第2177章
2176
01:27:41,570 --> 01:27:44,470
首先我想添加一些新动作
2177
01:27:44,900 --> 01:27:46,870
除了左边我还想要右边
2178
01:27:47,200 --> 01:27:49,000
我想起来
2179
01:27:49,370 --> 01:27:51,070
我想要下来
2180
01:27:51,500 --> 01:27:54,270
这将覆盖移动玩家的按键
2181
01:27:54,270 --> 01:27:59,070
最重要的是我想要一个主要的行动
2182
01:27:59,900 --> 01:28:02,470
这将是鼠标左键或空格键
2183
01:28:02,470 --> 01:28:03,900
稍后发射激光
2184
01:28:04,070 --> 01:28:05,870
尽管还有很多工作要做
2185
01:28:05,870 --> 01:28:07,400
在我们到达那个阶段之前
2186
01:28:07,800 --> 01:28:08,870
但首先
2187
01:28:08,870 --> 01:28:12,330
我们必须为所有这些操作添加一些键
2188
01:28:12,670 --> 01:28:16,100
我建议你自己做这件事
2189
01:28:16,100 --> 01:28:18,070
但我稍后会添加适当的练习
2190
01:28:18,730 --> 01:28:20,300
虽然这应该不会太难
2191
01:28:20,300 --> 01:28:22,100
让我们来看看
2192
01:28:22,770 --> 01:28:24,000
为了正确的行动
2193
01:28:24,070 --> 01:28:25,930
我想按键盘上的右键
2194
01:28:26,100 --> 01:28:27,470
或者我想按
2195
01:28:27,900 --> 01:28:28,930
键盘上的 d
2196
01:28:29,770 --> 01:28:30,330
接下来
2197
01:28:30,330 --> 01:28:33,870
对于 up 我想按键盘上的向上键,然后单击“确定”
2198
01:28:34,100 --> 01:28:37,300
或者我想按键盘上的 W,然后单击“确定”
2199
01:28:37,870 --> 01:28:41,300
board down 我想按下键盘
2200
01:28:41,400 --> 01:28:43,900
我想按键盘上的 s
2201
01:28:45,100 --> 01:28:47,270
这样我们就可以四处走动
2202
01:28:47,470 --> 01:28:49,400
接下来我们需要采取主要行动
2203
01:28:49,770 --> 01:28:51,930
这个是由空格键触发的
2204
01:28:51,930 --> 01:28:53,170
这个很容易捕捉到
2205
01:28:53,170 --> 01:28:55,670
我所要做的就是按空格键,然后我们就可以了
2206
01:28:55,670 --> 01:28:56,970
我们有空格键
2207
01:28:57,930 --> 01:29:00,070
捕获鼠标按钮是
2208
01:29:00,070 --> 01:29:01,300
稍微困难一点
2209
01:29:01,300 --> 01:29:02,930
因为我不能直接点击那里
2210
01:29:03,100 --> 01:29:04,400
哦,我其实可以
2211
01:29:04,600 --> 01:29:06,700
但我不知道我能做到
2212
01:29:06,970 --> 01:29:08,730
所以不要这样做
2213
01:29:08,800 --> 01:29:10,570
你可以简单地看一下鼠标按钮
2214
01:29:10,570 --> 01:29:11,570
还有鼠标左键
2215
01:29:11,570 --> 01:29:13,900
鼠标右键 鼠标中键 等等
2216
01:29:14,570 --> 01:29:16,300
我想要获得鼠标左键
2217
01:29:16,870 --> 01:29:18,770
所以我点击“确定”,然后我们就开始了
2218
01:29:18,800 --> 01:29:21,470
现在我们有很多可以使用的密钥
2219
01:29:21,970 --> 01:29:23,300
现在回到代码中
2220
01:29:23,370 --> 01:29:25,330
让我回到编辑器
2221
01:29:25,570 --> 01:29:27,400
我不想动
2222
01:29:27,400 --> 01:29:29,300
这个精灵是我们之前创建的
2223
01:29:29,300 --> 01:29:31,570
相反我想移动玩家
2224
01:29:31,900 --> 01:29:34,530
为此我想清理一下
2225
01:29:34,870 --> 01:29:37,000
我不再需要激光图像
2226
01:29:37,200 --> 01:29:38,530
所以我要摆脱这个
2227
01:29:38,600 --> 01:29:40,500
这个精灵对于手榴弹来说太深了
2228
01:29:40,500 --> 01:29:41,670
我们也可以摆脱
2229
01:29:42,070 --> 01:29:44,670
这样我们就只剩下玩家图像了
2230
01:29:46,100 --> 01:29:47,200
最重要的是
2231
01:29:47,330 --> 01:29:48,700
关卡内部
2232
01:29:48,730 --> 01:29:51,400
我想附加该播放器的一个实例
2233
01:29:51,530 --> 01:29:52,930
所以选择级别后
2234
01:29:52,930 --> 01:29:54,570
我要点击链符号
2235
01:29:54,570 --> 01:29:56,700
然后连接播放器
2236
01:29:56,900 --> 01:29:59,800
让我们把它们移到某个地方
2237
01:30:00,000 --> 01:30:02,170
所以我们看看发生了什么
2238
01:30:03,100 --> 01:30:03,900
现在有了那个
2239
01:30:04,130 --> 01:30:06,270
我想给玩家一个脚本
2240
01:30:06,270 --> 01:30:09,600
剧本将出现在2D玩家笔记上
2241
01:30:09,870 --> 01:30:11,670
不在图像本身上
2242
01:30:11,900 --> 01:30:13,970
原因是稍后
2243
01:30:14,000 --> 01:30:16,900
这张纸条将会吸引更多的孩子
2244
01:30:16,900 --> 01:30:18,700
我们想把它们全部搬到一起
2245
01:30:19,400 --> 01:30:21,670
为此,我们只需移动父注释
2246
01:30:21,670 --> 01:30:22,530
既然我们申请了
2247
01:30:22,530 --> 01:30:24,600
对所有孩子进行同样的变换
2248
01:30:24,600 --> 01:30:25,900
我们正在转移他们所有人
2249
01:30:25,900 --> 01:30:27,100
如果我们移动父母
第2251章
2250
01:30:27,270 --> 01:30:29,970
这意味着玩家将获得一个脚本
第2252章
2251
01:30:30,400 --> 01:30:33,270
我们再次得到创建新脚本的对话
第2253章
2252
01:30:33,370 --> 01:30:36,400
以及我之前应该提到的一件事
2253
01:30:36,570 --> 01:30:39,970
当你点击模板时我有默认的吗
2254
01:30:39,970 --> 01:30:42,600
这包括准备好的功能和流程
2255
01:30:42,730 --> 01:30:44,700
而如果你有空
第2257章
2256
01:30:44,700 --> 01:30:46,070
它不包含任何东西
2257
01:30:46,070 --> 01:30:47,530
除了范围声明
第2259章
2258
01:30:47,530 --> 01:30:48,730
为了传承
2259
01:30:49,300 --> 01:30:50,670
我将空着去
2260
01:30:50,670 --> 01:30:52,130
因为我喜欢干净地开始
2261
01:30:52,130 --> 01:30:53,600
但你可以选择任何你想要的
2262
01:30:54,330 --> 01:30:57,770
最重要的是我想保存脚本的路径
2263
01:30:57,770 --> 01:31:00,070
所以播放器GD在同一文件夹中
2264
01:31:00,070 --> 01:31:01,730
我有玩家的场景
2265
01:31:01,730 --> 01:31:03,100
我已经有了
2266
01:31:03,400 --> 01:31:05,400
这样我就可以单击打开并创建
2267
01:31:06,700 --> 01:31:07,200
我们去吧
2268
01:31:07,200 --> 01:31:10,670
现在玩家有一个脚本来检查输入
2269
01:31:10,670 --> 01:31:14,670
我们再次需要 process 函数
2270
01:31:15,570 --> 01:31:19,330
首先我想获得输入
第2272章
2271
01:31:19,970 --> 01:31:23,600
我可以通过几种不同的方式做到这一点
2272
01:31:23,970 --> 01:31:25,200
虽然有
2273
01:31:25,200 --> 01:31:26,900
一种方法是最
2274
01:31:26,900 --> 01:31:28,970
简洁且最容易使用
2275
01:31:29,200 --> 01:31:30,400
让我们看一下输入
2276
01:31:30,400 --> 01:31:33,370
因为如果我一直向上滚动的话
2277
01:31:33,670 --> 01:31:36,400
我们有一大堆可以使用的方法
2278
01:31:36,400 --> 01:31:38,130
让我稍微延长一下这个窗口
2279
01:31:38,130 --> 01:31:39,500
这样我们就能更好地看待事情
2280
01:31:40,270 --> 01:31:42,530
对我们最有用的方法
2281
01:31:42,530 --> 01:31:44,070
称为获取向量
2282
01:31:44,070 --> 01:31:46,730
如果我点击它我们会得到更多细节
2283
01:31:47,600 --> 01:31:50,200
该方法是为自上而下的运动而设计的
2284
01:31:50,400 --> 01:31:53,870
基本上它想要的是四种不同的动作
2285
01:31:53,900 --> 01:31:58,070
一个代表负 X 或一个左然后正 X 所以右
2286
01:31:58,400 --> 01:32:00,930
在负 y 和正 y 之后
2287
01:32:01,730 --> 01:32:03,170
这将是向上和向下
2288
01:32:03,500 --> 01:32:06,200
我们也可以添加一个区域,但我们不需要
2289
01:32:06,200 --> 01:32:07,400
所以我会忽略它
2290
01:32:08,200 --> 01:32:10,930
一旦我们采取了这四个行动
2291
01:32:10,930 --> 01:32:12,970
budo 将返回一个向量
2292
01:32:12,970 --> 01:32:15,100
这个向量将为我们提供运动
2293
01:32:15,570 --> 01:32:16,100
例如
2294
01:32:16,100 --> 01:32:19,070
如果用户只按下负 x 动作
2295
01:32:19,300 --> 01:32:22,470
我们将得到一个指向负 1 和 0 的向量
2296
01:32:22,470 --> 01:32:25,100
所以我们只是向左走,不向上或向下
2297
01:32:25,470 --> 01:32:27,500
如果你自己读这些东西
2298
01:32:27,500 --> 01:32:28,930
我认为尤其是在这个阶段
2299
01:32:28,930 --> 01:32:30,600
这可能有点令人困惑
2300
01:32:30,600 --> 01:32:32,470
当你开始编码时
2301
01:32:32,470 --> 01:32:34,870
阅读文档可能有点困难
2302
01:32:35,070 --> 01:32:36,770
但如果你有一点练习
2303
01:32:36,770 --> 01:32:39,400
所有这些都应该变得很容易理解
2304
01:32:39,700 --> 01:32:42,400
但确实需要一些时间来适应
2305
01:32:43,300 --> 01:32:44,000
无论如何
2306
01:32:44,000 --> 01:32:46,100
我想最小化这个窗口
2307
01:32:46,100 --> 01:32:47,800
并在播放器内部工作
2308
01:32:48,470 --> 01:32:49,530
获取输入
2309
01:32:50,530 --> 01:32:52,900
我首先想创建一个新变量
2310
01:32:52,900 --> 01:32:55,100
我们称之为 var 方向
2311
01:32:56,130 --> 01:33:00,400
我通过输入得到这个方向,然后得到
2312
01:33:01,400 --> 01:33:03,870
向量就是我们刚刚看到的方法
2313
01:33:04,270 --> 01:33:06,170
现在我们该走了
2314
01:33:06,170 --> 01:33:09,330
通过四个方向的不同行动
2315
01:33:09,730 --> 01:33:11,930
我们必须从负 x 开始
2316
01:33:11,930 --> 01:33:14,270
这是左的一种奇特说法
2317
01:33:14,800 --> 01:33:17,730
那么我们需要正 x ,这正好是
2318
01:33:18,100 --> 01:33:20,930
那么我们需要负 y 向上
2319
01:33:20,930 --> 01:33:24,170
最后我们需要正 y ,它是向下的
2320
01:33:24,600 --> 01:33:26,300
一旦我们拥有了所有这些
2321
01:33:26,300 --> 01:33:29,730
工藤停止抱怨,我们得到了一个向量
2322
01:33:30,330 --> 01:33:31,570
确保这有效
2323
01:33:31,570 --> 01:33:34,670
让我们打印一下我们从direction中实际得到的结果
2324
01:33:35,370 --> 01:33:39,070
在我在关卡内运行所有这些之前
2325
01:33:39,300 --> 01:33:41,200
我想注释掉打印语句
2326
01:33:41,200 --> 01:33:44,200
所以我们只能看到方向的输出
2327
01:33:44,200 --> 01:33:46,130
并且不会变得太混乱
2328
01:33:46,770 --> 01:33:47,700
让我们运行这一切
2329
01:33:48,070 --> 01:33:49,400
现在默认情况下我们得到
2330
01:33:49,500 --> 01:33:51,930
0 和 0 因为我没有按任何东西
2331
01:33:52,170 --> 01:33:55,870
但是如果我按左键或按 a
2332
01:33:56,130 --> 01:33:57,470
然后我们得到负1
2333
01:33:57,670 --> 01:33:59,570
因为现在这正在告诉游戏
2334
01:33:59,570 --> 01:34:01,930
我们想向左移动
2335
01:34:02,200 --> 01:34:05,730
我也可以按向上或向下或向右
2336
01:34:06,100 --> 01:34:07,530
或组合两个键
2337
01:34:07,530 --> 01:34:09,900
然后我们得到一个稍微不太漂亮的向量
2338
01:34:09,900 --> 01:34:11,570
但它确实有效
2339
01:34:11,930 --> 01:34:14,000
WASD 也同样适用
2340
01:34:14,100 --> 01:34:15,870
我们得到几乎相同的输出
2341
01:34:16,600 --> 01:34:18,000
这看起来真的很好
2342
01:34:20,200 --> 01:34:21,500
这意味着所有这些
2343
01:34:21,700 --> 01:34:23,700
我们可以得到输入
2344
01:34:23,700 --> 01:34:26,200
然后我们只需要用它来移动玩家
2345
01:34:26,600 --> 01:34:28,470
然后实际移动玩家
2346
01:34:28,470 --> 01:34:30,800
我们必须瞄准位置
2347
01:34:31,200 --> 01:34:32,700
再一次
2348
01:34:32,700 --> 01:34:33,730
我想对于这个
2349
01:34:33,730 --> 01:34:35,900
打开检查器是最简单的
2350
01:34:36,270 --> 01:34:38,670
因为我们最终想要改变的
2351
01:34:38,670 --> 01:34:40,670
是音符 2d 的位置
2352
01:34:40,730 --> 01:34:42,870
我们可以用这个位置来定位
2353
01:34:43,670 --> 01:34:45,970
它本身就是一个向量
2354
01:34:46,170 --> 01:34:50,670
我们所要做的就是位置加等于方向
2355
01:34:50,870 --> 01:34:53,130
然后乘以某种速度
2356
01:34:53,330 --> 01:34:54,930
假设 200
2357
01:34:55,270 --> 01:34:57,530
除此之外我在上一部分中介绍了
2358
01:34:57,600 --> 01:34:59,270
不要忘记三角洲
2359
01:34:59,270 --> 01:35:01,700
每当你连续移动任何东西时
2360
01:35:02,000 --> 01:35:04,670
现在,一旦我们完成了所有这些,我就可以再次运行代码
2361
01:35:04,730 --> 01:35:07,770
现在我们可以移动玩家
2362
01:35:09,130 --> 01:35:12,600
虽然很慢但是确实有效
2363
01:35:12,600 --> 01:35:14,600
所以我对此很满意
2364
01:35:15,170 --> 01:35:17,730
提高速度可能是个好主意
2365
01:35:17,730 --> 01:35:19,100
假设 500
2366
01:35:19,730 --> 01:35:21,870
现在我们可以更快地行动
2367
01:35:21,870 --> 01:35:23,270
这感觉好多了
2368
01:35:23,900 --> 01:35:26,530
但这将是运动的基础
2369
01:35:27,400 --> 01:35:28,130
稍后的
2370
01:35:28,130 --> 01:35:30,900
我们将改变它以解释物理原理
2371
01:35:30,900 --> 01:35:33,700
但现在效果很好
2372
01:35:34,170 --> 01:35:34,900
取决于那
2373
01:35:34,900 --> 01:35:37,000
不过我确实想补充一件事
2374
01:35:37,000 --> 01:35:38,000
因为现在
2375
01:35:38,170 --> 01:35:40,570
我们只能移动
2376
01:35:40,730 --> 01:35:42,970
玩家没有任何方式输入
2377
01:35:42,970 --> 01:35:44,330
射击机械师
2378
01:35:44,530 --> 01:35:46,400
为此我想添加更多代码
2379
01:35:47,070 --> 01:35:50,570
我们称之为激光射击输入
2380
01:35:51,870 --> 01:35:52,700
我想检查一下
2381
01:35:52,700 --> 01:35:55,130
如果玩家按下主要输入
2382
01:35:55,130 --> 01:35:56,500
我需要一个 if 语句
2383
01:35:56,500 --> 01:35:57,530
这会看起来
2384
01:35:57,530 --> 01:35:59,330
与我们所做的非常相似
2385
01:35:59,330 --> 01:36:00,930
在此 print 语句内
2386
01:36:01,200 --> 01:36:04,200
我想检查输入,然后按下操作
2387
01:36:04,600 --> 01:36:06,500
这意味着在播放器内部
2388
01:36:06,500 --> 01:36:09,900
我想得到输入然后是行动
2389
01:36:10,370 --> 01:36:11,530
对于这个你可以使用
2390
01:36:11,530 --> 01:36:14,730
要么是刚刚按下了操作,要么是按下了操作
2391
01:36:15,100 --> 01:36:17,530
稍后我们将有一个计时器来关联
2392
01:36:17,530 --> 01:36:18,800
无论如何激光射击
2393
01:36:18,800 --> 01:36:20,800
所以这里的差异可以忽略不计
2394
01:36:21,130 --> 01:36:23,700
但我正在寻找的行动是主要行动
2395
01:36:24,930 --> 01:36:28,200
如果现在是这种情况,我只想打印
2396
01:36:28,700 --> 01:36:30,600
假设发射激光
2397
01:36:31,200 --> 01:36:33,200
现在我可以再次运行游戏了
2398
01:36:33,330 --> 01:36:36,670
现在如果我点击鼠标按钮我就会发射激光
2399
01:36:36,670 --> 01:36:39,300
或者如果我按空格键,我们也会发射激光
2400
01:36:39,300 --> 01:36:41,100
所以这工作得很好
2401
01:36:41,530 --> 01:36:42,470
然后
2402
01:36:42,470 --> 01:36:45,700
涵盖了键盘输入的所有基础知识
2403
01:36:46,000 --> 01:36:47,700
我们现在要做的就是做一个练习
2404
01:36:47,700 --> 01:36:48,930
然后我们就完成了
2405
01:36:49,600 --> 01:36:51,270
我希望你们能够创造
2406
01:36:51,330 --> 01:36:53,900
输入映射中的另一个操作并调用它
2407
01:36:53,900 --> 01:36:54,970
次要行动
2408
01:36:55,930 --> 01:36:58,530
相关键为 Ctrl 左键
2409
01:36:58,530 --> 01:36:59,600
控制更具体
2410
01:36:59,600 --> 01:37:00,970
但这并不重要
2411
01:37:00,970 --> 01:37:02,870
还有鼠标右键
2412
01:37:03,500 --> 01:37:04,900
如果该动作被触发
2413
01:37:04,900 --> 01:37:06,270
打印应该手榴弹
2414
01:37:06,270 --> 01:37:08,970
所有代码都应该在播放中
2415
01:37:08,970 --> 01:37:10,300
就在激光下方
2416
01:37:10,870 --> 01:37:12,900
你们中的大多数人现在正在尝试解决这个问题
2417
01:37:16,270 --> 01:37:19,070
首先我必须更新输入地图
2418
01:37:19,070 --> 01:37:21,700
这是我正在做的而不是项目输入地图
2419
01:37:21,800 --> 01:37:23,730
我想添加另一个动作
2420
01:37:24,100 --> 01:37:27,000
我称之为次要行动
2421
01:37:28,100 --> 01:37:29,370
现在我有行动了
2422
01:37:29,370 --> 01:37:31,970
我必须添加几个键
2423
01:37:32,200 --> 01:37:33,500
我想添加控制
2424
01:37:33,500 --> 01:37:35,470
所以我只需点击键盘上的control
2425
01:37:36,700 --> 01:37:39,270
除此之外我要再次点击加号
2426
01:37:39,300 --> 01:37:40,730
我可以
2427
01:37:42,330 --> 01:37:44,870
在字段中单击鼠标左键并选择右键
2428
01:37:44,870 --> 01:37:46,870
鼠标按钮,这就是我们正在寻找的按钮
2429
01:37:48,000 --> 01:37:49,900
这将更新输入映射
2430
01:37:49,900 --> 01:37:51,330
所以现在我可以关闭它
2431
01:37:51,730 --> 01:37:54,470
之后我可以重新打开播放器代码
2432
01:37:54,470 --> 01:37:55,330
现在
2433
01:37:55,330 --> 01:37:57,970
我们需要做一些与此非常相似的事情
2434
01:38:00,100 --> 01:38:04,530
我想添加一个 if 语句,如果输入是动作
2435
01:38:05,000 --> 01:38:05,800
休息
2436
01:38:06,470 --> 01:38:09,000
我正在寻找这个次要行动
2437
01:38:09,530 --> 01:38:11,930
如果是这种情况我想打印
2438
01:38:12,370 --> 01:38:14,130
射击石榴石
2439
01:38:15,700 --> 01:38:17,800
我打印的具体内容并不重要
2440
01:38:17,800 --> 01:38:19,970
无论如何,我们稍后会对此进行一些更改
2441
01:38:19,970 --> 01:38:22,470
但现在这应该就是我们所需要的
2442
01:38:22,530 --> 01:38:23,330
咱们试试吧
2443
01:38:24,500 --> 01:38:27,570
如果我右键单击我们会射击手榴弹
2444
01:38:27,730 --> 01:38:30,400
如果我按下控制键,我们也会发射手榴弹
2445
01:38:31,200 --> 01:38:33,400
如果我按空格键我们仍然会发射激光
2446
01:38:33,400 --> 01:38:34,970
我们仍然可以四处走动
2447
01:38:35,000 --> 01:38:37,200
所以所有这些都很好地结合在一起
2448
01:38:37,200 --> 01:38:38,000
完美的
2449
01:38:38,530 --> 01:38:39,700
在我们继续之前
2450
01:38:39,700 --> 01:38:41,970
我想讨论一些更多的小话题
第2452章
2451
01:38:41,970 --> 01:38:44,970
特别是我想更多地谈论节点
2452
01:38:45,130 --> 01:38:46,300
更具体地说
2453
01:38:46,300 --> 01:38:48,300
我想谈谈如何与节点交互
2454
01:38:48,300 --> 01:38:51,730
通过代码我们已经看到了其中的一些
2455
01:38:52,800 --> 01:38:54,330
调出较早的幻灯片
2456
01:38:54,400 --> 01:38:56,600
您可以通过两种方式定位节点
2457
01:38:56,800 --> 01:38:59,200
使用 get 节点或美元符号
2458
01:38:59,470 --> 01:39:01,700
美元节点 1 是更好的一个
2459
01:39:01,700 --> 01:39:03,670
因为它更简洁
2460
01:39:04,270 --> 01:39:06,800
我们将进一步探讨这一点
2461
01:39:06,930 --> 01:39:07,700
具体来说
2462
01:39:07,700 --> 01:39:10,200
如何针对更多的不同音符
2463
01:39:10,200 --> 01:39:11,170
如此嵌套
2464
01:39:11,170 --> 01:39:13,700
如果注释有更多父注释或更多子注释
2465
01:39:13,700 --> 01:39:15,870
我们如何才能针对其中的各种注释
2466
01:39:15,930 --> 01:39:18,070
我认为理解这一点非常重要
2467
01:39:18,570 --> 01:39:19,700
你还可以做什么
2468
01:39:19,770 --> 01:39:22,470
您可以给节点指定唯一的名称
2469
01:39:22,570 --> 01:39:24,270
尤其对于复杂的场景
2470
01:39:24,370 --> 01:39:26,370
这非常有用
2471
01:39:27,200 --> 01:39:29,930
也很容易实现,所以非常有用
2472
01:39:30,600 --> 01:39:31,600
最重要的是
2473
01:39:31,600 --> 01:39:33,470
我真正想强调的是
2474
01:39:33,530 --> 01:39:36,470
一旦你捕获了代码中的一个节点
2475
01:39:36,470 --> 01:39:39,270
您可以访问它的属性和方法
2476
01:39:39,270 --> 01:39:42,700
节点你基本上将节点视为一个类
2477
01:39:42,700 --> 01:39:44,270
具有属性和方法
2478
01:39:44,270 --> 01:39:45,570
你可以和他们一起工作
2479
01:39:45,700 --> 01:39:47,770
因为这基本上就是正在发生的事情
2480
01:39:48,470 --> 01:39:49,600
我们又回到了原来的水平
2481
01:39:49,600 --> 01:39:53,670
让我们看看我们已经拥有什么
2482
01:39:53,670 --> 01:39:55,970
使用代码内的节点
2483
01:39:56,100 --> 01:39:59,900
所以如果我查看级别我可以打开其中的代码
2484
01:40:00,100 --> 01:40:01,200
我们可以看到
2485
01:40:01,200 --> 01:40:03,400
我们已经进行了几次互动
2486
01:40:03,500 --> 01:40:04,370
最重要的是
2487
01:40:04,370 --> 01:40:05,870
我们正在获取徽标节点
2488
01:40:05,870 --> 01:40:07,900
我们之前创建的精灵
2489
01:40:07,970 --> 01:40:11,100
我们正在改变旋转和位置
2490
01:40:12,100 --> 01:40:13,100
请注意这里
2491
01:40:13,100 --> 01:40:15,570
我们正在影响和衡量
2492
01:40:15,570 --> 01:40:17,400
一些内置属性
2493
01:40:17,400 --> 01:40:18,470
喜欢的位置
2494
01:40:18,670 --> 01:40:20,370
我们正在改变
2495
01:40:20,400 --> 01:40:23,370
我们添加的自定义属性,如 POS
2496
01:40:23,370 --> 01:40:25,270
所以如果我看一下标志的内部
2497
01:40:25,600 --> 01:40:27,870
我们有自己创建的 POS
2498
01:40:27,870 --> 01:40:29,270
我们有这样的地位
2499
01:40:29,470 --> 01:40:31,570
这是节点本身的一部分
2500
01:40:31,900 --> 01:40:34,200
我们可以对玩家做同样的事情
2501
01:40:34,300 --> 01:40:36,530
虽然对于这一部分我们并不真正需要它
2502
01:40:36,970 --> 01:40:39,900
现在我首先要介绍的是
2503
01:40:39,900 --> 01:40:43,300
是如何更好地处理不同的音符路径
2504
01:40:43,570 --> 01:40:46,670
例如,让我添加一些注释
2505
01:40:46,670 --> 01:40:49,770
所以选择级别音符后我按 Ctrl a
2506
01:40:49,770 --> 01:40:51,670
或者您也可以单击加号
2507
01:40:51,730 --> 01:40:54,100
我想添加另一个 2d 精灵
2508
01:40:55,370 --> 01:40:57,930
然而选择了这个 sprite 2d
2509
01:40:58,070 --> 01:41:01,170
我想单击 Ctrl d 来复制它
2510
01:41:01,470 --> 01:41:04,470
然后设置第二个精灵2d
2511
01:41:04,500 --> 01:41:06,300
作为这个 sprite 2d 的子元素
2512
01:41:06,900 --> 01:41:09,770
所以我们有另一个带有另一个孩子的 2d 精灵
2513
01:41:09,970 --> 01:41:13,700
这个过程我会多做几次
2514
01:41:15,570 --> 01:41:18,100
这样我们就喷到了4
2515
01:41:18,200 --> 01:41:22,170
作为其他几个音符的孩子
2516
01:41:22,930 --> 01:41:24,700
这不是最有用的设置
2517
01:41:24,700 --> 01:41:26,500
但就本视频而言
2518
01:41:26,500 --> 01:41:27,900
这会很有用的
2519
01:41:28,130 --> 01:41:32,370
因为假设您想要定位这个 Sprite 2d4
2520
01:41:32,370 --> 01:41:34,270
让我将其重命名为 target
2521
01:41:34,570 --> 01:41:36,730
所以更容易理解发生了什么
2522
01:41:37,570 --> 01:41:40,200
让我把它拖到下面的某个地方
2523
01:41:40,200 --> 01:41:42,870
在那里我们可以看到我们有一条更长的路
2524
01:41:43,100 --> 01:41:44,530
我们有 2d 雪碧
2525
01:41:45,070 --> 01:41:46,670
这是第一个 2d 精灵
2526
01:41:46,670 --> 01:41:48,100
该级别的第一个子级
2527
01:41:48,100 --> 01:41:50,730
请注意,因为现在的代码适用于该级别
2528
01:41:51,330 --> 01:41:52,600
在此 Sprite 2d 内部
2529
01:41:52,700 --> 01:41:54,200
我们还有另一个 Sprite 2d
2530
01:41:54,200 --> 01:41:55,570
这将是 Sprite 2d2
2531
01:41:55,570 --> 01:41:56,500
就是这个
2532
01:41:56,970 --> 01:41:59,700
然后我们有另一个 Sprite 2d Sprite 2d3
2533
01:41:59,930 --> 01:42:03,100
这下我们终于有了目标
2534
01:42:03,270 --> 01:42:04,130
最后的注释
2535
01:42:04,730 --> 01:42:06,700
如果你的场景变得更复杂
2536
01:42:06,700 --> 01:42:08,930
并且你有更多嵌套笔记
2537
01:42:08,930 --> 01:42:11,700
这是你经常看到的事情
2538
01:42:11,800 --> 01:42:14,170
但还不错
2539
01:42:14,170 --> 01:42:15,300
例如
2540
01:42:15,300 --> 01:42:17,800
你现在可以做的就是简单地打印
2541
01:42:18,570 --> 01:42:21,300
节点,我们不要在流程节点中执行此操作
2542
01:42:21,300 --> 01:42:22,470
相反
2543
01:42:22,470 --> 01:42:24,700
将所有内容放入就绪函数中
2544
01:42:25,070 --> 01:42:26,870
这样我们就不会弄乱输出
2545
01:42:27,330 --> 01:42:28,470
如果我现在运行这个
2546
01:42:29,300 --> 01:42:30,100
我们得到
2547
01:42:31,700 --> 01:42:35,270
输出目标内部,然后是 sprite 2d
2548
01:42:35,330 --> 01:42:37,400
具有唯一 ID 的某个地方
2549
01:42:38,770 --> 01:42:40,970
意味着这一切都工作得很好
2550
01:42:41,400 --> 01:42:45,570
现在如果你觉得这变得太难读了
2551
01:42:45,570 --> 01:42:47,600
它实际上可能会变成
2552
01:42:47,600 --> 01:42:50,070
您可以给这个目标节点一个唯一的名称
2553
01:42:50,400 --> 01:42:51,470
给它一个
2554
01:42:51,470 --> 01:42:52,730
你必须右键单击它
2555
01:42:52,730 --> 01:42:55,130
然后以唯一名称访问
2556
01:42:55,670 --> 01:42:56,570
如果我点击那个
2557
01:42:57,130 --> 01:43:00,600
我们在它的右侧有一个百分号
2558
01:43:00,900 --> 01:43:05,300
如果我现在删除这条路径,这意味着什么
2559
01:43:05,400 --> 01:43:08,130
并再次指向目标节点
2560
01:43:08,470 --> 01:43:10,070
我们现在得到一个百分号
2561
01:43:10,070 --> 01:43:11,370
然后是目标
2562
01:43:12,700 --> 01:43:14,930
虽然结果是一样的
2563
01:43:15,700 --> 01:43:18,530
我们仍然得到一个 2D 精灵目标
2564
01:43:18,870 --> 01:43:20,270
具有一些唯一的ID
2565
01:43:21,070 --> 01:43:22,600
基本上这个人在做什么
2566
01:43:22,600 --> 01:43:25,500
它是否给这个目标一个唯一的名称
2567
01:43:25,500 --> 01:43:28,400
您可以访问场景内的任何位置
2568
01:43:28,530 --> 01:43:31,730
例如,如果我想在徽标内部工作
2569
01:43:32,970 --> 01:43:35,330
我们现在只是移动一个精灵
2570
01:43:35,470 --> 01:43:37,930
我也可以瞄准同一个音符
2571
01:43:38,170 --> 01:43:39,070
我可以简单地
2572
01:43:39,070 --> 01:43:42,130
假设我想要百分号
2573
01:43:42,300 --> 01:43:44,170
然后是目标
2574
01:43:45,170 --> 01:43:46,770
这将为我们提供整个节点
2575
01:43:46,770 --> 01:43:49,670
例如,我可以得到这个职位
2576
01:43:49,970 --> 01:43:52,530
如果我拼写正确的话这也会有很大帮助
2577
01:43:52,730 --> 01:43:55,200
现在如果我再次运行这一切
2578
01:43:56,070 --> 01:43:59,700
我们得到的位置是 0 和 0
2579
01:44:00,370 --> 01:44:01,330
通过这种设置
2580
01:44:01,330 --> 01:44:03,970
在更大的场景中工作更容易
2581
01:44:04,070 --> 01:44:05,600
虽然不要过度使用它
2582
01:44:05,600 --> 01:44:07,930
如果你将这种东西添加到每个节点
2583
01:44:07,930 --> 01:44:09,800
该系统变得毫无意义
2584
01:44:09,900 --> 01:44:11,000
所以要谨慎使用
2585
01:44:11,000 --> 01:44:12,500
但在某些情况下
2586
01:44:12,500 --> 01:44:14,130
这非常有用
2587
01:44:14,730 --> 01:44:17,870
是的,在这种情况下这根本没有用
2588
01:44:17,870 --> 01:44:18,730
因为那个
2589
01:44:18,730 --> 01:44:21,730
我想删除我们刚刚创建的所有内容
2590
01:44:21,730 --> 01:44:22,900
所以我要删除
2591
01:44:22,970 --> 01:44:26,500
所有这些笔记并摆脱
2592
01:44:26,900 --> 01:44:30,930
标志 GD 和级别 GD 内的打印声明
2593
01:44:31,670 --> 01:44:34,170
因为目标音符不再存在
2594
01:44:34,400 --> 01:44:36,530
我想讲的最后一件事是
2595
01:44:36,530 --> 01:44:40,770
如果你有一个像这个 2d 徽标这样的儿童笔记怎么办
2596
01:44:40,870 --> 01:44:41,770
带脚本
2597
01:44:41,770 --> 01:44:44,700
并且您想访问父级内部的某些内容
2598
01:44:44,700 --> 01:44:46,170
在这种情况下的水平
2599
01:44:46,570 --> 01:44:48,870
例如现在在我们的关卡内
2600
01:44:48,900 --> 01:44:52,270
我们有一个包含几个条目的测试数组
2601
01:44:52,470 --> 01:44:56,000
我想从徽标内部访问它
2602
01:44:56,000 --> 01:44:58,200
其中附有此脚本
2603
01:44:58,670 --> 01:45:00,570
你也可以很容易地做到
2604
01:45:01,100 --> 01:45:02,670
你所要做的就是
2605
01:45:02,670 --> 01:45:03,200
出色地
2606
01:45:03,200 --> 01:45:06,000
您基本上只需将节点拖到代码中即可
2607
01:45:06,000 --> 01:45:07,400
然后你就会看到会发生什么
2608
01:45:08,070 --> 01:45:10,370
我们得到一个双点
2609
01:45:11,300 --> 01:45:14,000
这是获得父节点的标志和好面团
2610
01:45:14,300 --> 01:45:18,000
在此基础上我们可以针对某些事情
2611
01:45:18,300 --> 01:45:21,930
在这种情况下,在 GD 关卡内,我们有一个测试数组
2612
01:45:22,100 --> 01:45:25,130
这只是本笔记的一个属性
2613
01:45:25,130 --> 01:45:27,600
这样我就可以得到测试数组
2614
01:45:27,930 --> 01:45:31,530
我想打印所有这些,以便我们可以实际看到它
2615
01:45:32,100 --> 01:45:35,570
也让我摆脱任何其他打印语句
2616
01:45:35,900 --> 01:45:36,400
例如
2617
01:45:36,400 --> 01:45:39,870
这里我们正在打印测试数组 0
2618
01:45:39,870 --> 01:45:41,400
现在会很混乱
2619
01:45:41,800 --> 01:45:43,100
播放器内部
2620
01:45:43,270 --> 01:45:44,300
我们只是打印
2621
01:45:44,300 --> 01:45:46,000
如果我们发射激光或手榴弹
2622
01:45:46,000 --> 01:45:47,070
所以那些都很好
2623
01:45:47,570 --> 01:45:49,170
现在如果我再次运行代码
2624
01:45:49,930 --> 01:45:51,900
我们得到测试数组
2625
01:45:52,270 --> 01:45:53,800
输出内部
2626
01:45:53,970 --> 01:45:56,670
这是因为我们正在获取父节点
2627
01:45:56,870 --> 01:45:58,070
与财产
2628
01:45:58,270 --> 01:45:59,270
最重要的是
2629
01:45:59,270 --> 01:46:00,400
你还可以做什么
2630
01:46:00,400 --> 01:46:01,570
你可以给
2631
01:46:01,570 --> 01:46:03,530
该节点是一个自定义函数
2632
01:46:03,530 --> 01:46:07,300
并从任何孩子或父母那里调用它
2633
01:46:07,930 --> 01:46:09,570
实际上我们还没有做过的事情
2634
01:46:09,570 --> 01:46:11,400
所以让我们创建一个自定义函数
2635
01:46:11,600 --> 01:46:14,330
到目前为止我们只使用内置的
2636
01:46:14,370 --> 01:46:16,800
但你完全可以创建自己的函数
2637
01:46:17,500 --> 01:46:20,100
只需输入 funk,然后输入自定义名称
2638
01:46:20,730 --> 01:46:22,600
例如测试
2639
01:46:22,970 --> 01:46:24,670
放克功能
2640
01:46:25,400 --> 01:46:27,570
那么你需要里面的括号
2641
01:46:27,570 --> 01:46:28,530
你可以添加参数
2642
01:46:28,530 --> 01:46:30,200
虽然在这种情况下我没有任何
2643
01:46:30,470 --> 01:46:32,400
我只想打印
2644
01:46:32,930 --> 01:46:35,800
这是一个测试函数
2645
01:46:36,300 --> 01:46:40,600
我现在想从徽标 GD 内部调用这个函数
2646
01:46:41,570 --> 01:46:43,000
我想获取父节点
2647
01:46:43,000 --> 01:46:44,700
对于这个我需要引号
2648
01:46:44,700 --> 01:46:45,930
然后点点
2649
01:46:46,270 --> 01:46:48,170
我们在这里做了同样的事情
2650
01:46:48,730 --> 01:46:50,330
您需要的引号
2651
01:46:50,330 --> 01:46:51,500
当你使用点点时
2652
01:46:51,500 --> 01:46:52,770
如果我删除它们
2653
01:46:53,300 --> 01:46:55,130
我们会得到一些奇怪的输出
2654
01:46:55,500 --> 01:46:58,930
因此,当您使用父节点时,您需要
2655
01:46:59,200 --> 01:47:00,300
引号
2656
01:47:01,130 --> 01:47:03,770
尽管除此之外我们可以简单地调用测试
2657
01:47:04,000 --> 01:47:06,670
函数,因为我们现在要调用该函数
2658
01:47:06,730 --> 01:47:08,500
不要忘记最后的括号
2659
01:47:09,170 --> 01:47:11,170
这样我就可以运行这一切
2660
01:47:11,170 --> 01:47:13,470
我们得到这是一个测试函数
2661
01:47:14,130 --> 01:47:14,970
看起来不错
2662
01:47:15,200 --> 01:47:17,530
现在在关卡内
2663
01:47:17,800 --> 01:47:20,270
我们基本上可以用它来做任何事情
2664
01:47:20,270 --> 01:47:21,470
脚本内部
2665
01:47:21,470 --> 01:47:23,370
例如我们可以改变位置
2666
01:47:23,470 --> 01:47:24,800
我们可以改变轮换
2667
01:47:24,900 --> 01:47:26,530
我们可以改变测试数组
2668
01:47:26,670 --> 01:47:27,970
无论我们想做啥
2669
01:47:28,570 --> 01:47:30,930
这是非常重要的事情,你必须这样做
2670
01:47:31,070 --> 01:47:33,100
明白了所以让我强调一下
2671
01:47:33,670 --> 01:47:36,570
Goodo 最重要的方面之一
2672
01:47:36,600 --> 01:47:37,900
如果你想掌握它
2673
01:47:37,900 --> 01:47:40,300
就是做笔记互相交流
2674
01:47:40,730 --> 01:47:42,100
到目前为止我们做了什么
2675
01:47:42,100 --> 01:47:45,670
我们在同一个场景中一起做笔记
2676
01:47:45,870 --> 01:47:47,000
虽然后来
2677
01:47:47,000 --> 01:47:49,470
我们也会跨多个场景进行工作
2678
01:47:50,170 --> 01:47:53,000
有很多工具可以完成所有这些工作
2679
01:47:53,130 --> 01:47:55,500
但我真的想强调一点
2680
01:47:55,500 --> 01:47:57,370
做笔记互相交流
2681
01:47:57,470 --> 01:47:59,800
是良好救济的基本组成部分
2682
01:47:59,800 --> 01:48:02,570
你必须明白这是如何运作的
2683
01:48:03,070 --> 01:48:05,900
我想现在这并不太难
2684
01:48:05,900 --> 01:48:06,800
但后来
2685
01:48:06,800 --> 01:48:09,070
我们将对这个系统进行相当多的扩展
2686
01:48:09,300 --> 01:48:11,100
所以一定要尝试一下这个
2687
01:48:11,100 --> 01:48:12,930
并确保您可以访问不同的笔记
2688
01:48:12,930 --> 01:48:14,100
并更改属性
2689
01:48:14,100 --> 01:48:16,200
从场景内的任何地方
2690
01:48:16,500 --> 01:48:19,100
此时你应该能够做到这一点
2691
01:48:20,330 --> 01:48:21,530
对于本节
2692
01:48:21,700 --> 01:48:24,100
我们将进行一个稍微不同的练习
2693
01:48:24,100 --> 01:48:25,570
它更加开放
2694
01:48:25,900 --> 01:48:27,900
我希望你们能够尝试一下节点
2695
01:48:27,900 --> 01:48:29,600
并尝试改变和更新
2696
01:48:29,600 --> 01:48:30,700
其他节点
2697
01:48:30,930 --> 01:48:34,000
基本上确保您了解音符路径
2698
01:48:34,170 --> 01:48:35,170
以及如何使用它们
2699
01:48:35,170 --> 01:48:38,000
访问其他注释上的属性和方法
2700
01:48:38,300 --> 01:48:40,530
所有这一切并没有真正的具体目标
2701
01:48:40,600 --> 01:48:43,300
只是玩玩看看你能改变什么
2702
01:48:43,300 --> 01:48:46,130
您可以访问哪些内容 您可以使用哪些属性
2703
01:48:46,170 --> 01:48:47,970
理解这一点真的很重要
2704
01:48:48,600 --> 01:48:50,200
一旦你了解了这一切
2705
01:48:50,300 --> 01:48:52,730
我们可以处理实际的角色动作
2706
01:48:52,730 --> 01:48:55,200
所以在下一部分我们将讨论物理
2707
01:48:56,100 --> 01:48:59,370
让我们来谈谈迄今为止最重要的部分之一
2708
01:48:59,370 --> 01:49:01,400
这就是物理学
2709
01:49:01,900 --> 01:49:05,770
这对于任何类型的运动都非常重要
2710
01:49:06,900 --> 01:49:08,100
来说明原因
2711
01:49:08,130 --> 01:49:10,900
我想谈谈我们现在遇到的一些问题
2712
01:49:11,670 --> 01:49:16,130
到目前为止我们只是移动图像
2713
01:49:16,270 --> 01:49:18,900
这很好,但也有限
2714
01:49:19,070 --> 01:49:20,770
因为图像不能碰撞
2715
01:49:20,770 --> 01:49:22,400
或稍长的表面
2716
01:49:22,600 --> 01:49:25,570
本质上它们没有任何物理特性
2717
01:49:26,370 --> 01:49:29,300
对于游戏来说这将是一个大问题
2718
01:49:29,700 --> 01:49:30,570
解决这个问题
2719
01:49:31,000 --> 01:49:34,170
我们必须使用碰撞体和物理体
2720
01:49:34,870 --> 01:49:38,300
这些都是古道笔记,可以处理所有这些
2721
01:49:39,170 --> 01:49:41,000
以及实现这一切的最佳方法
2722
01:49:41,000 --> 01:49:43,270
就是直接看古道这个
2723
01:49:43,900 --> 01:49:45,200
我们回到编辑器了
2724
01:49:45,200 --> 01:49:47,900
我想再创建一些笔记
2725
01:49:48,600 --> 01:49:50,500
让我们摆脱 2d 精灵
2726
01:49:50,670 --> 01:49:53,130
在这里我们可以看到所有的节点
2727
01:49:53,770 --> 01:49:55,330
在非常广泛的意义上
2728
01:49:55,330 --> 01:49:57,800
你有四种不同类型的笔记
2729
01:49:57,930 --> 01:50:01,100
你有蓝色的那些是 2d 游戏的注释
2730
01:50:01,530 --> 01:50:03,130
那么你就有了控制节点
2731
01:50:03,270 --> 01:50:04,670
这些是布局的节点
2732
01:50:04,670 --> 01:50:06,770
我们稍后会在某种程度上介绍这些内容
2733
01:50:06,800 --> 01:50:08,400
但这是一个相当大的话题
2734
01:50:08,400 --> 01:50:10,170
所以这将是一个单独的视频
2735
01:50:10,600 --> 01:50:12,170
我们还有 3D 节点
2736
01:50:12,170 --> 01:50:14,270
然后我们有很多通用节点
2737
01:50:14,300 --> 01:50:15,670
例如有一个计时器
2738
01:50:15,670 --> 01:50:17,300
实际上我们很快就会介绍这一点
2739
01:50:18,600 --> 01:50:21,170
现在我想在 note 2d 内部工作
2740
01:50:21,170 --> 01:50:22,870
因为我们正在制作 2d 游戏
2741
01:50:23,470 --> 01:50:25,000
我们还有更多的节点
2742
01:50:25,000 --> 01:50:27,870
但在顶部我们有碰撞对象 2d
2743
01:50:28,130 --> 01:50:29,270
如果我扩展它
2744
01:50:29,600 --> 01:50:33,100
我们得到物理体 2d 并得到面积 2d 节点
2745
01:50:33,470 --> 01:50:36,270
我们还可以扩展物理体 2d
2746
01:50:36,300 --> 01:50:38,100
我们就有了 2d 的审美身体
2747
01:50:38,130 --> 01:50:40,770
角色身体 2d 和刚体 2d
2748
01:50:41,400 --> 01:50:45,330
我们可以扩展一些东西,但我们不需要
2749
01:50:45,670 --> 01:50:48,500
这四个注意事项非常重要
2750
01:50:48,500 --> 01:50:51,600
所以我想详细谈谈它们
2751
01:50:51,730 --> 01:50:53,930
有两个主要部分
2752
01:50:53,930 --> 01:50:55,200
对于这些注释中的每一个
2753
01:50:55,200 --> 01:50:56,500
你必须知道的
2754
01:50:56,570 --> 01:50:58,200
第一是他们所做的
2755
01:50:58,200 --> 01:51:00,870
第二是你如何移动它们
2756
01:51:01,300 --> 01:51:02,900
因为现在我们正在研究物理学
2757
01:51:02,900 --> 01:51:04,600
运动变得有点不同
2758
01:51:04,930 --> 01:51:06,600
大部分工作都是由好面团完成的
2759
01:51:06,600 --> 01:51:08,870
所以我们不会做任何复杂的事情
2760
01:51:09,170 --> 01:51:12,500
我们可以讨论的最简单的注释是 2d 区域
2761
01:51:12,800 --> 01:51:15,100
这只是一个可以检查的区域
2762
01:51:15,100 --> 01:51:16,800
如果另一具尸体进入
2763
01:51:17,330 --> 01:51:20,470
您也可以通过改变位置来移动该区域
2764
01:51:20,470 --> 01:51:22,700
这很容易做到
2765
01:51:22,700 --> 01:51:24,530
一个很好的例子是
2766
01:51:24,530 --> 01:51:26,670
如果玩家正在进入房屋
2767
01:51:26,730 --> 01:51:28,570
房子将是一个 2d 区域
2768
01:51:28,600 --> 01:51:32,300
这个区域 2d 可以检查是否有人进入
2769
01:51:33,100 --> 01:51:35,800
除此之外,当我们稍后创建激光器时
2770
01:51:35,930 --> 01:51:38,730
这些也会有附加的区域
2771
01:51:38,930 --> 01:51:40,470
这些区域将进行检查
2772
01:51:40,470 --> 01:51:42,730
如果激光与敌人或墙壁碰撞
2773
01:51:42,730 --> 01:51:44,670
或障碍物或类似的东西
2774
01:51:45,570 --> 01:51:48,870
接下来我们有一个静态的 2d 物体
2775
01:51:49,130 --> 01:51:49,770
名字
2776
01:51:49,770 --> 01:51:52,170
让你很清楚这个人在做什么
2777
01:51:52,200 --> 01:51:55,370
它是一个与其他物体碰撞的静态物体
2778
01:51:55,670 --> 01:51:58,100
结果这个没有任何动静
2779
01:51:58,130 --> 01:52:00,800
我想理论上你可以移动它
2780
01:52:00,800 --> 01:52:02,300
但你不应该这样做
2781
01:52:03,130 --> 01:52:04,770
这方面的例子是
2782
01:52:04,770 --> 01:52:06,900
游戏中的任何静态物体
2783
01:52:07,200 --> 01:52:09,400
任何类型的墙壁任何类型的障碍物
2784
01:52:09,400 --> 01:52:10,530
并被优先创建
2785
01:52:10,530 --> 01:52:13,270
坏处是静态物体 2d
2786
01:52:13,730 --> 01:52:16,700
这意味着稍后其他物体可能会与它们相撞
2787
01:52:16,700 --> 01:52:18,670
但他们无法移动自己
2788
01:52:19,270 --> 01:52:22,600
它们是我们拥有的最容易碰撞的物体
2789
01:52:23,300 --> 01:52:25,900
接下来我们有一个 2d 刚体
2790
01:52:26,400 --> 01:52:29,930
这是一个纯粹通过物理力量移动的物体
2791
01:52:30,670 --> 01:52:32,330
把它想象成炮弹
2792
01:52:32,770 --> 01:52:33,970
如果你想移动它们
2793
01:52:33,970 --> 01:52:36,270
你所要做的就是在创建时设置一个速度
2794
01:52:36,270 --> 01:52:39,100
然后身体就会自行移动
2795
01:52:39,800 --> 01:52:42,200
我们不会经常使用这个
2796
01:52:42,200 --> 01:52:44,600
但是当我们稍后要制作手榴弹时
2797
01:52:44,600 --> 01:52:46,370
我们将使用刚体
2798
01:52:46,370 --> 01:52:48,470
2D 因为对于手榴弹
2799
01:52:48,470 --> 01:52:50,100
我们所要做的就是设定一个速度
2800
01:52:50,100 --> 01:52:52,200
然后它会自己移动
2801
01:52:52,800 --> 01:52:55,500
最后最重要的身体是角色身体
2802
01:52:55,500 --> 01:52:59,530
太深了,这是一个由代码控制的移动体
2803
01:52:59,670 --> 01:53:02,970
你正在通过构建方法移动它
2804
01:53:03,270 --> 01:53:04,300
有几个
2805
01:53:04,300 --> 01:53:06,500
取决于你想要什么样的碰撞
2806
01:53:06,500 --> 01:53:07,900
我会稍微介绍一下这个
2807
01:53:08,130 --> 01:53:09,730
但本质上是任何实体
2808
01:53:09,730 --> 01:53:12,100
由代码控制将是一个角色身体
2809
01:53:12,100 --> 01:53:15,700
2D,这包括玩家和所有敌人
2810
01:53:16,070 --> 01:53:18,530
当我说由代码控制的实体时
2811
01:53:18,570 --> 01:53:20,370
我的意思是一些复杂的动作
2812
01:53:20,600 --> 01:53:20,970
例如
2813
01:53:20,970 --> 01:53:23,570
玩家有一个复杂的方向运动
2814
01:53:23,570 --> 01:53:24,870
我们通过输入得到的
2815
01:53:24,900 --> 01:53:27,070
然后以某种速度
2816
01:53:27,700 --> 01:53:29,100
敌人也会有一些
2817
01:53:29,100 --> 01:53:30,870
稍微复杂一点的动作
2818
01:53:31,130 --> 01:53:33,800
虽然现在我涵盖了一大堆理论
2819
01:53:33,800 --> 01:53:35,270
让我们回到编辑器
2820
01:53:35,270 --> 01:53:37,000
让我们做一些更实际的事情
2821
01:53:37,800 --> 01:53:38,670
回到古道
2822
01:53:38,770 --> 01:53:41,730
我想创建几个物理体
2823
01:53:41,770 --> 01:53:44,300
让我们从最简单的开始
2824
01:53:44,330 --> 01:53:46,600
我要更新蝙蝠
2825
01:53:47,070 --> 01:53:50,370
因为现在我们作为父母的关系还不算太深
2826
01:53:50,370 --> 01:53:52,530
然后我们附加了三个精灵
2827
01:53:53,100 --> 01:53:55,870
要更新这个我想更改父节点
2828
01:53:55,870 --> 01:53:59,870
所以这个节点2d我想变成静态体2d
2829
01:54:00,330 --> 01:54:02,530
为此我必须右键单击它
2830
01:54:02,530 --> 01:54:04,770
我们有改变类型
2831
01:54:06,330 --> 01:54:07,870
现在我们有一个note 2d
2832
01:54:07,970 --> 01:54:09,270
这不是我想要的
2833
01:54:09,270 --> 01:54:11,100
相反,我想去注意 2d
2834
01:54:11,130 --> 01:54:13,530
碰撞物体和物理体 2d
2835
01:54:13,600 --> 01:54:15,500
我们有一个静态的 2d 物体
2836
01:54:16,170 --> 01:54:17,200
或者
2837
01:54:17,330 --> 01:54:20,000
您也可以简单地输入 static body 2d
2838
01:54:20,070 --> 01:54:21,670
你会得到相同的结果
2839
01:54:22,270 --> 01:54:24,700
所以现在我们得到了二维的审美身体
2840
01:54:26,000 --> 01:54:29,330
你可以看到图标已经改变,但到目前为止
2841
01:54:29,330 --> 01:54:31,070
没有发生太多事情
2842
01:54:31,330 --> 01:54:34,100
我们得到的另一件事是一个警告符号
2843
01:54:34,870 --> 01:54:37,700
这就是说这个节点没有形状
2844
01:54:37,700 --> 01:54:41,100
所以它不能与其他物体碰撞或相互作用
2845
01:54:41,370 --> 01:54:43,300
考虑添加碰撞形状 2d
2846
01:54:43,330 --> 01:54:45,000
或碰撞多边形 2d
2847
01:54:45,000 --> 01:54:47,170
作为一个孩子来定义它的形状
2848
01:54:47,730 --> 01:54:50,470
这意味着每当你有任何
2849
01:54:50,470 --> 01:54:53,330
物理体你还必须附加一个形状
2850
01:54:53,330 --> 01:54:54,500
因为现在
2851
01:54:54,700 --> 01:54:56,000
这个碰撞体
2852
01:54:56,000 --> 01:54:58,200
不知道它的真实身体是什么
2853
01:54:58,770 --> 01:54:59,870
几乎具体地
2854
01:54:59,870 --> 01:55:02,100
它不知道自己的身体是什么形状
2855
01:55:02,570 --> 01:55:05,170
为了解决这个问题,我们需要添加另一个节点
2856
01:55:05,170 --> 01:55:08,200
这意味着我点击加号和我们需要的东西
2857
01:55:08,270 --> 01:55:10,330
是一个碰撞形状 2d
2858
01:55:10,400 --> 01:55:12,070
或碰撞多边形 2d
2859
01:55:12,770 --> 01:55:16,470
碰撞形状 2d 为您提供预定义的形状
2860
01:55:16,600 --> 01:55:18,600
而碰撞多边形 2d
2861
01:55:18,770 --> 01:55:21,870
允许您创建更灵活的安排
2862
01:55:22,000 --> 01:55:22,800
不过现在
2863
01:55:22,800 --> 01:55:24,730
因为坏的是一个非常简单的形状
2864
01:55:24,730 --> 01:55:26,470
我想要一个碰撞形状 2d
2865
01:55:27,300 --> 01:55:28,600
如果我现在点击输入
2866
01:55:28,900 --> 01:55:32,200
我们创建另一个孩子,它是一个碰撞形状 2d
2867
01:55:32,330 --> 01:55:34,730
尽管现在我们又收到了另一个警告
2868
01:55:35,530 --> 01:55:36,600
这就是说
2869
01:55:36,600 --> 01:55:38,670
必须为碰撞形状提供形状
2870
01:55:38,670 --> 01:55:39,930
二维功能
2871
01:55:40,400 --> 01:55:42,800
要添加这个形状,我们必须看右边
2872
01:55:43,000 --> 01:55:46,730
在检查器内部我们有一个 shape 属性
2873
01:55:46,930 --> 01:55:49,470
现在它是空的,但如果我点击它
2874
01:55:49,670 --> 01:55:52,970
我们可以选择一组形状
2875
01:55:53,300 --> 01:55:56,200
我想看的是一个新的二维矩形
2876
01:55:56,400 --> 01:55:57,330
如果我点击那个
2877
01:55:57,770 --> 01:56:00,300
我们得到一个小的蓝色区域
2878
01:56:01,070 --> 01:56:02,100
最重要的是
2879
01:56:02,100 --> 01:56:03,530
如果你看看我们的节点
2880
01:56:03,530 --> 01:56:05,370
我们不再有错误了
2881
01:56:05,370 --> 01:56:06,900
这是完美的
2882
01:56:07,670 --> 01:56:09,470
你现在必须明白的是
2883
01:56:09,470 --> 01:56:11,130
这里的蓝色区域
2884
01:56:11,130 --> 01:56:12,200
我们可以四处走动
2885
01:56:12,800 --> 01:56:16,270
是这个静态物体的形状,我称之为坏的
2886
01:56:16,270 --> 01:56:17,070
现在
2887
01:56:17,670 --> 01:56:19,200
使所有这些都能正常工作
2888
01:56:19,200 --> 01:56:20,870
我想再次选择它
2889
01:56:21,470 --> 01:56:22,700
并扩大规模
2890
01:56:22,700 --> 01:56:26,330
使其适合蝙蝠的整个物理形状
2891
01:56:26,600 --> 01:56:28,730
现在只是图像
2892
01:56:29,870 --> 01:56:31,700
你可以简单地指向红点
2893
01:56:31,700 --> 01:56:35,570
以及如果您选择一个点并按住 alt 可以执行什么操作
2894
01:56:35,970 --> 01:56:38,870
您在任一轴上缩放它
2895
01:56:38,870 --> 01:56:40,930
所以垂直或水平都可以
2896
01:56:41,470 --> 01:56:43,270
基本上你想要得到什么
2897
01:56:43,270 --> 01:56:44,670
是某种形状
2898
01:56:44,670 --> 01:56:46,800
这涵盖了您想要的实际内容
2899
01:56:46,800 --> 01:56:47,730
肉体
2900
01:56:47,900 --> 01:56:49,730
像这样的东西看起来不错
2901
01:56:50,270 --> 01:56:51,470
现在我想保存场景
2902
01:56:51,470 --> 01:56:53,300
如果我再看一下关卡
2903
01:56:53,500 --> 01:56:56,070
我们这里现在没有床
2904
01:56:56,600 --> 01:56:58,100
所以选择级别
2905
01:56:58,100 --> 01:56:59,700
我想点击链符号
2906
01:56:59,770 --> 01:57:03,000
添加子场景并添加蝙蝠
2907
01:57:03,870 --> 01:57:05,770
让我们把它移到这里吧
2908
01:57:07,330 --> 01:57:08,670
你仍然可以看到
2909
01:57:08,670 --> 01:57:11,200
不过我们在游戏中有蓝色轮廓
2910
01:57:11,200 --> 01:57:12,670
这不会是可见的
2911
01:57:13,330 --> 01:57:16,270
这个蓝色区域纯粹用于调试目的
2912
01:57:16,270 --> 01:57:18,600
所以你知道实际的碰撞形状是什么
2913
01:57:19,500 --> 01:57:20,570
话虽这么说
2914
01:57:20,670 --> 01:57:21,870
如果我再次运行游戏
2915
01:57:21,930 --> 01:57:24,900
我可以移动玩家,但我们没有碰撞
2916
01:57:25,870 --> 01:57:26,870
原因
2917
01:57:27,000 --> 01:57:30,070
就是蝙蝠有碰撞形状
2918
01:57:30,100 --> 01:57:32,200
但播放器只是一个图像
2919
01:57:32,200 --> 01:57:33,870
并且图像不能碰撞
2920
01:57:34,100 --> 01:57:35,800
所以我们必须更新播放器
2921
01:57:35,800 --> 01:57:37,870
然后我们就发生了真正的碰撞
2922
01:57:38,300 --> 01:57:41,800
这意味着我们必须再次更新注释
2923
01:57:41,930 --> 01:57:45,670
在这种情况下,玩家也是一个 note 2d
2924
01:57:45,770 --> 01:57:47,600
但这不再是我想要的了
2925
01:57:48,700 --> 01:57:52,070
所以我右键单击它,我想更改类型
2926
01:57:52,770 --> 01:57:54,130
我不想要 2d 笔记
2927
01:57:54,300 --> 01:57:57,730
相反,我想要一个 2d 角色身体
2928
01:57:59,530 --> 01:58:00,930
再一次
2929
01:58:00,930 --> 01:58:03,870
我们得到一个不同的符号和一个警告图标
2930
01:58:04,330 --> 01:58:05,870
这个身体没有形状
2931
01:58:06,130 --> 01:58:08,800
修复我想添加另一条注释的问题
2932
01:58:09,070 --> 01:58:11,500
这将是一个碰撞形状 2d
2933
01:58:11,770 --> 01:58:13,730
我最近的标签中有这个
2934
01:58:14,130 --> 01:58:15,270
我可以点击创建
2935
01:58:15,370 --> 01:58:16,000
现在我们得到
2936
01:58:16,000 --> 01:58:18,700
另一个警告,这个身体没有形状
2937
01:58:18,930 --> 01:58:20,970
为此我们必须向右看
2938
01:58:21,070 --> 01:58:22,600
我们可以在其中添加形状
2939
01:58:23,270 --> 01:58:23,930
现在这个
2940
01:58:23,930 --> 01:58:26,300
形状变得有点复杂
2941
01:58:26,500 --> 01:58:30,500
因为播放器本身没有规则的形状
2942
01:58:30,870 --> 01:58:33,400
虽然我们可以稍微简化一下事情
2943
01:58:33,930 --> 01:58:35,930
如果你眯起眼睛看着播放器
2944
01:58:36,100 --> 01:58:38,400
你或多或少会得到一个圆形的形状
2945
01:58:38,670 --> 01:58:40,600
这就是我想要的
2946
01:58:41,370 --> 01:58:42,900
这意味着对于形状
2947
01:58:43,070 --> 01:58:45,570
我想要一个 2D 圆形
2948
01:58:47,330 --> 01:58:48,670
这现在给了我一个圆圈
2949
01:58:48,670 --> 01:58:52,000
我想把这个圈子扩大一点
2950
01:58:52,070 --> 01:58:54,400
像这样以及以后
2951
01:58:54,770 --> 01:58:55,800
除此之外
2952
01:58:55,870 --> 01:58:58,370
我想获取玩家图像并移动它
2953
01:58:58,500 --> 01:59:00,670
所以它大约在中间
2954
01:59:00,670 --> 01:59:03,700
我建议始终保持碰撞形状
2955
01:59:03,700 --> 01:59:04,700
围绕中心
2956
01:59:04,700 --> 01:59:05,870
所以现在
2957
01:59:05,930 --> 01:59:09,270
该角色身体以该位置为中心
2958
01:59:09,300 --> 01:59:12,470
0和0还有这个0和0我不想改变
2959
01:59:13,000 --> 01:59:15,270
所以我保持这个位置周围的碰撞形状
2960
01:59:15,270 --> 01:59:17,570
然后移动播放器以与其对齐
2961
01:59:18,300 --> 01:59:21,500
这样我们就有了一个碰撞形状
2962
01:59:22,100 --> 01:59:24,100
这种设置
2963
01:59:24,470 --> 01:59:26,570
你有一个 2d 角色身体
2964
01:59:26,700 --> 01:59:29,130
图像,然后是碰撞形状
2965
01:59:29,170 --> 01:59:31,670
在好的面团中非常常见
2966
01:59:31,930 --> 01:59:33,400
基本上任何类型的游戏
2967
01:59:33,400 --> 01:59:36,170
因为任何场景都是从这样的事情开始的
2968
01:59:36,730 --> 01:59:38,100
这样你就会发生碰撞
2969
01:59:38,100 --> 01:59:38,970
你得到运动
2970
01:59:38,970 --> 01:59:41,370
你可以通过图像看到发生了什么
2971
01:59:42,570 --> 01:59:44,170
如果你没有运动
2972
01:59:44,170 --> 01:59:46,930
就像坏的你会有审美身体 2d
2973
01:59:47,070 --> 01:59:49,930
然后是一张或多张图像,然后
2974
01:59:49,930 --> 01:59:51,200
另一种碰撞形状
2975
01:59:51,370 --> 01:59:53,970
所以这种设置是你必须要做的
2976
01:59:53,970 --> 01:59:54,770
理解
2977
01:59:55,530 --> 01:59:58,400
现在所说的如果或再次在代码上
2978
01:59:59,130 --> 02:00:02,330
我仍然没有遇到任何碰撞
2979
02:00:02,330 --> 02:00:04,570
所以有些东西仍然不起作用
2980
02:00:06,400 --> 02:00:08,770
原因是如果我看看玩家
2981
02:00:08,800 --> 02:00:10,470
并打开代码
2982
02:00:10,870 --> 02:00:12,730
我们遇到一个问题
2983
02:00:12,730 --> 02:00:15,600
这是我们正在扩展的注释 2d
2984
02:00:17,730 --> 02:00:19,200
这是因为早些时候
2985
02:00:19,330 --> 02:00:22,730
我们创建了一个 note 2d 并附加了所有代码
2986
02:00:22,870 --> 02:00:24,370
但我们改变了注释
2987
02:00:24,400 --> 02:00:26,130
现在我们不再有 note 2d
2988
02:00:26,130 --> 02:00:28,400
相反,我们有一个 2d 角色身体
2989
02:00:28,870 --> 02:00:30,770
所以我们不想延长 no 2d
2990
02:00:30,770 --> 02:00:33,700
我们想要将角色身体扩展到 2d
2991
02:00:34,570 --> 02:00:37,130
现在我们可以再次运行代码了
2992
02:00:37,530 --> 02:00:40,370
我们仍然没有发生碰撞
2993
02:00:41,200 --> 02:00:45,300
那是因为我们现在正在更新立场
2994
02:00:45,330 --> 02:00:48,070
这不是你应该如何使用角色的方式
2995
02:00:48,070 --> 02:00:48,930
身体太深
2996
02:00:49,270 --> 02:00:50,370
作为结果
2997
02:00:50,400 --> 02:00:52,300
让我摆脱这个职位
2998
02:00:52,470 --> 02:00:54,970
我也想扩展代码窗口
2999
02:00:54,970 --> 02:00:56,670
这样我们就可以更好地了解正在发生的事情
3000
02:00:57,500 --> 02:00:59,770
更新角色身体 2d
3001
02:01:00,200 --> 02:01:03,170
您将需要使用一个名为的特定方法
3002
02:01:03,170 --> 02:01:04,970
移动和滑动
3003
02:01:05,870 --> 02:01:08,200
你不必添加任何类型的参数
3004
02:01:08,200 --> 02:01:09,900
这个可以单独工作
3005
02:01:10,670 --> 02:01:11,600
然而
3006
02:01:11,900 --> 02:01:15,770
你还需要做的是更新速度
3007
02:01:16,530 --> 02:01:20,400
该速度是 2d 角色身体的属性
3008
02:01:20,400 --> 02:01:21,570
你总是拥有它
3009
02:01:21,570 --> 02:01:23,100
但一旦你覆盖它
3010
02:01:23,100 --> 02:01:24,900
移动和滑动正在拾取它
3011
02:01:24,970 --> 02:01:26,070
你移动身体
3012
02:01:27,700 --> 02:01:29,100
所以在我们的例子中
3013
02:01:29,170 --> 02:01:30,800
我们想要设置速度
3014
02:01:30,800 --> 02:01:32,330
这将是一个二维向量
3015
02:01:32,900 --> 02:01:33,970
向方向
3016
02:01:33,970 --> 02:01:36,270
然后乘以某种速度
3017
02:01:36,470 --> 02:01:38,930
假设现在我想要 500
3018
02:01:39,900 --> 02:01:41,170
现在如果我们再次运行游戏
3019
02:01:41,800 --> 02:01:43,930
我们正在发生碰撞
3020
02:01:44,730 --> 02:01:47,200
这感觉好多了
3021
02:01:50,930 --> 02:01:53,570
让我们多谈谈这个设置
3022
02:01:53,570 --> 02:01:54,730
以及最好的思考方式
3023
02:01:54,730 --> 02:01:56,300
就是看看这一切
3024
02:01:56,300 --> 02:01:57,870
文档里面
3025
02:01:58,070 --> 02:01:58,770
为了那个原因
3026
02:01:58,770 --> 02:02:01,600
我将按住 Ctrl 或 command 并单击
3027
02:02:01,600 --> 02:02:02,900
角色身体 2d
3028
02:02:03,600 --> 02:02:04,470
如果我这样做
3029
02:02:04,500 --> 02:02:07,400
我得到了 2d 角色的文档
3030
02:02:08,100 --> 02:02:11,370
那里有很多信息
3031
02:02:11,930 --> 02:02:15,170
我建议您在自己的时间阅读此内容
3032
02:02:15,170 --> 02:02:17,530
但现在还不太重要
3033
02:02:17,930 --> 02:02:21,130
真正重要的是速度
3034
02:02:21,130 --> 02:02:23,730
这是我点击后首先要查看的内容
3035
02:02:24,100 --> 02:02:26,670
我们得到当前速度(以像素每秒为单位)
3036
02:02:27,400 --> 02:02:30,870
在调用移动和滑动期间使用和修改
3037
02:02:31,330 --> 02:02:32,000
最重要的是
3038
02:02:32,000 --> 02:02:34,870
我们还看到默认值是向量 20
3039
02:02:34,900 --> 02:02:35,530
和 0
3040
02:02:35,530 --> 02:02:38,370
这意味着角色身体 2d 的默认速度
3041
02:02:38,470 --> 02:02:39,970
一点动静都没有
3042
02:02:40,470 --> 02:02:42,730
一旦我们改变了 2d 向量
3043
02:02:42,800 --> 02:02:44,730
到其他物体的速度
3044
02:02:44,800 --> 02:02:46,470
移动和滑动将会移动
3045
02:02:46,470 --> 02:02:48,330
这个身体的方向
3046
02:02:49,370 --> 02:02:51,600
说到这里,让我们点击“移动”和“滑动”
3047
02:02:52,200 --> 02:02:55,170
这个根据速度移动身体
3048
02:02:55,170 --> 02:02:56,800
我们刚刚看过的房产
3049
02:02:57,730 --> 02:02:59,730
如果身体与另一个身体相撞
3050
02:02:59,900 --> 02:03:01,870
它会沿着那个身体滑动
第3052章
3051
02:03:02,300 --> 02:03:04,300
你可以定义一个楼层
3052
02:03:04,300 --> 02:03:06,900
但在我们的例子中,因为我们有一个自上而下的游戏
3053
02:03:06,900 --> 02:03:08,200
我们不需要那样做
3054
02:03:08,700 --> 02:03:09,900
还有更多信息
3055
02:03:09,900 --> 02:03:12,330
但现在这还不太重要
3056
02:03:13,100 --> 02:03:15,870
我想我们还可以考虑的另一件事是
3057
02:03:15,870 --> 02:03:18,530
如果物体发生碰撞,此方法返回 true
3058
02:03:18,530 --> 02:03:20,600
否则返回错误
3059
02:03:20,900 --> 02:03:22,700
可用于信息
3060
02:03:22,800 --> 02:03:25,370
但在本教程中我们不会使用它
3061
02:03:25,770 --> 02:03:28,970
让我一直滚动到顶部
3062
02:03:29,200 --> 02:03:30,600
在那里我们可以看到
3063
02:03:30,670 --> 02:03:33,700
移动 2d 物理体的另一种方法
3064
02:03:33,870 --> 02:03:35,870
这就是所谓的移动和碰撞
3065
02:03:36,300 --> 02:03:39,070
这个有一些稍微不同的碰撞行为
3066
02:03:39,270 --> 02:03:41,900
但它最终与移动和滑动非常相似
3067
02:03:42,000 --> 02:03:44,300
我不会在本教程中介绍这一点
3068
02:03:44,300 --> 02:03:45,530
因为我们不需要它
3069
02:03:45,670 --> 02:03:46,530
移动和滑动
3070
02:03:46,530 --> 02:03:48,770
是你大部分时间都会用到的
3071
02:03:48,970 --> 02:03:51,600
但请记住有两个不同的
3072
02:03:51,900 --> 02:03:54,200
另外如果你再滚动一点
3073
02:03:54,530 --> 02:03:55,200
你可以看到
3074
02:03:55,200 --> 02:03:57,400
还有很多其他方法可供您使用
3075
02:03:57,730 --> 02:04:00,470
例如,您可以判断尸体是否在地板上
3076
02:04:00,470 --> 02:04:01,470
在墙上
3077
02:04:01,470 --> 02:04:02,670
在天花板上
3078
02:04:03,070 --> 02:04:03,670
像这样的东西
3079
02:04:03,670 --> 02:04:04,970
它非常有用
3080
02:04:05,400 --> 02:04:07,370
特别是如果你创建一个平台游戏
3081
02:04:07,400 --> 02:04:10,070
这将会非常有帮助
3082
02:04:10,070 --> 02:04:11,730
但现在我们不需要它
3083
02:04:12,200 --> 02:04:13,700
既然我们已经完成了这个
3084
02:04:13,700 --> 02:04:16,470
我想关闭文档中的此条目
3085
02:04:16,930 --> 02:04:18,270
这可以通过
3086
02:04:18,470 --> 02:04:21,000
右键单击并关闭或 Ctrl 和 W
3087
02:04:21,670 --> 02:04:24,000
让我也关闭输入
3088
02:04:24,000 --> 02:04:25,200
我们也不需要这个
3089
02:04:25,900 --> 02:04:27,900
所以在播放器内部
3090
02:04:27,930 --> 02:04:29,570
我们正在更新我们的速度
3091
02:04:29,570 --> 02:04:32,270
我们使用移动和滑动来移动这个身体
3092
02:04:32,930 --> 02:04:34,530
现在我们有了
3093
02:04:34,870 --> 02:04:39,600
让我最小化代码并返回关卡场景
3094
02:04:40,400 --> 02:04:42,170
首先我想把东西清理干净
3095
02:04:42,270 --> 02:04:44,470
我们不再需要这个标志了
3096
02:04:44,770 --> 02:04:47,900
这意味着我可以点击删除并摆脱它
3097
02:04:48,370 --> 02:04:52,300
在场景里面我们有 GD 标志
3098
02:04:52,700 --> 02:04:54,500
这个脚本我也想摆脱
3099
02:04:55,200 --> 02:04:56,530
我们总是会抱怨
3100
02:04:56,530 --> 02:04:59,500
我们在场景中使用这个脚本
3101
02:04:59,500 --> 02:05:00,700
我对此没意见
3102
02:05:01,600 --> 02:05:03,670
所以现在我们有了等级
3103
02:05:03,670 --> 02:05:05,770
我们有关卡GD和关卡场景
3104
02:05:06,100 --> 02:05:08,200
我们有一个不好的对象
3105
02:05:08,300 --> 02:05:10,330
我们有玩家
3106
02:05:11,130 --> 02:05:13,700
这感觉像是一个更干净的设置
3107
02:05:13,870 --> 02:05:14,500
还
3108
02:05:14,500 --> 02:05:17,330
如果你现在查看调试器,它又开始抱怨了
3109
02:05:17,330 --> 02:05:18,500
让我们看看
3110
02:05:20,370 --> 02:05:21,500
我们再一次
3111
02:05:21,700 --> 02:05:22,970
参数增量
3112
02:05:22,970 --> 02:05:25,130
函数过程中从未使用过
3113
02:05:25,800 --> 02:05:27,070
如果我双击它
3114
02:05:27,930 --> 02:05:32,370
我们现在得到的流程 Delta 不再被使用
3115
02:05:32,870 --> 02:05:34,770
让我实际最小化调试器
3116
02:05:35,400 --> 02:05:37,300
这也是我应该涵盖的内容
3117
02:05:37,500 --> 02:05:38,600
移动和滑动
3118
02:05:38,730 --> 02:05:41,400
使用速度来移动角色身体
3119
02:05:41,400 --> 02:05:44,130
它自动包括达美航空
3120
02:05:44,500 --> 02:05:45,300
因为那个
3121
02:05:45,300 --> 02:05:47,770
我们不必在此过程函数中使用 Delta
3122
02:05:47,770 --> 02:05:51,070
完全表明我们没有使用它
3123
02:05:51,270 --> 02:05:53,070
面团希望我们使用下划线
3124
02:05:53,070 --> 02:05:53,970
一开始
3125
02:05:55,170 --> 02:05:55,770
那样
3126
02:05:55,770 --> 02:05:58,700
该增量仍然可用,但我们没有使用它
3127
02:05:58,700 --> 02:06:00,300
现在如果我们再次使用代码
3128
02:06:00,670 --> 02:06:02,300
调试器又高兴了
3129
02:06:03,930 --> 02:06:06,130
虽然现在我们收到一个错误
3130
02:06:06,130 --> 02:06:08,170
因为我们去掉了标志
3131
02:06:08,170 --> 02:06:09,970
所以关卡场景有
3132
02:06:09,970 --> 02:06:12,800
相当多的代码不再相关
3133
02:06:13,400 --> 02:06:14,870
在ready函数内部
3134
02:06:15,170 --> 02:06:16,170
我们正在使用徽标
3135
02:06:16,170 --> 02:06:18,070
这是我们在那里做的唯一的事情
3136
02:06:18,070 --> 02:06:19,700
所以让我们摆脱所有这些
3137
02:06:20,470 --> 02:06:21,170
相同的过程
第3139章
3138
02:06:21,170 --> 02:06:24,130
事实上我们也可以摆脱这一切
3139
02:06:24,800 --> 02:06:27,170
这样我就可以再次运行游戏了
3140
02:06:27,330 --> 02:06:30,600
现在我们有一个更简单的设置
3141
02:06:30,600 --> 02:06:32,500
不过这仍然感觉很好
3142
02:06:34,700 --> 02:06:35,770
我猜我们在这里是什么
3143
02:06:35,770 --> 02:06:36,370
我们还可以得到
3144
02:06:36,370 --> 02:06:38,530
去掉测试函数和测试数组
3145
02:06:38,870 --> 02:06:41,470
这样一切都漂亮整洁
3146
02:06:42,000 --> 02:06:43,970
我们现在要做的就是添加一个练习
3147
02:06:43,970 --> 02:06:46,000
然后我们就完成了视频
3148
02:06:46,000 --> 02:06:48,500
对于这个练习,我们有相当多的
3149
02:06:49,770 --> 02:06:52,000
我希望你们能够创造
3150
02:06:52,200 --> 02:06:54,970
另一个将成为审美对象的场景
3151
02:06:56,130 --> 02:06:58,570
这里的具体细节并不重要
3152
02:06:58,570 --> 02:06:59,330
基本上
3153
02:06:59,330 --> 02:07:02,130
浏览图形文件夹并查看对象
3154
02:07:02,130 --> 02:07:03,900
看看你想创建什么
3155
02:07:03,900 --> 02:07:05,100
作为静态对象
3156
02:07:05,500 --> 02:07:06,470
最后它应该看起来
3157
02:07:06,470 --> 02:07:09,100
与我们之前制作的蝙蝠有些相似
3158
02:07:09,530 --> 02:07:10,330
除此之外
3159
02:07:10,500 --> 02:07:13,300
我希望你们用无人机创造一个动人的场景
3160
02:07:13,470 --> 02:07:16,000
这个应该不断向右移动
3161
02:07:16,870 --> 02:07:19,200
你可以在敌人的文件夹下找到无人机
3162
02:07:19,200 --> 02:07:20,570
图形内部
3163
02:07:20,700 --> 02:07:23,600
现在被动地尝试实现这两件事
3164
02:07:27,000 --> 02:07:29,530
回到编辑器让我们从静态场景开始
3165
02:07:29,530 --> 02:07:32,130
为此我想创建一个全新的场景
3166
02:07:32,400 --> 02:07:33,730
单击其他节点
3167
02:07:33,730 --> 02:07:35,200
因为现在父节点
3168
02:07:35,200 --> 02:07:37,700
将是一个静态的 2d 物体
3169
02:07:38,600 --> 02:07:41,200
首先我们必须添加一个图像
3170
02:07:41,200 --> 02:07:43,700
为此我想要一个 2d 精灵
3171
02:07:44,330 --> 02:07:45,730
现在是 2d 精灵
3172
02:07:45,770 --> 02:07:47,330
我们必须看图形
3173
02:07:47,330 --> 02:07:50,730
里面有一大堆东西
3174
02:07:50,800 --> 02:07:52,470
我想看物体
3175
02:07:52,470 --> 02:07:55,800
例如我们可以看到的是
3176
02:07:56,500 --> 02:07:58,000
假设有一个广告牌
3177
02:07:58,000 --> 02:07:59,130
我们可以合作
3178
02:07:59,130 --> 02:08:01,670
我想将其拖入精灵的纹理中
3179
02:08:01,670 --> 02:08:04,700
2d 那里我们有一个广告牌
3180
02:08:05,170 --> 02:08:06,330
这是一个很好的开始
3181
02:08:06,700 --> 02:08:09,900
接下来我想添加一个碰撞形状
3182
02:08:10,470 --> 02:08:12,070
我们有一个碰撞形状
3183
02:08:12,070 --> 02:08:14,770
现在这个需要一个形状
3184
02:08:15,070 --> 02:08:17,100
我们在检查器内部创建的形状
3185
02:08:17,100 --> 02:08:18,400
对于这个
3186
02:08:18,400 --> 02:08:20,770
我认为矩形是最好的形状
3187
02:08:21,600 --> 02:08:24,730
这个形状我现在必须延长一点
3188
02:08:24,930 --> 02:08:27,000
记住这里按住alt
3189
02:08:27,270 --> 02:08:30,530
让我们在任一轴上缩放物体
3190
02:08:32,200 --> 02:08:34,000
也让我移动这个
3191
02:08:34,000 --> 02:08:35,800
你可以使用箭头键来移动它
3192
02:08:35,800 --> 02:08:37,570
一次一个像素
3193
02:08:37,600 --> 02:08:39,200
我觉得这个看起来不错
3194
02:08:40,700 --> 02:08:43,200
显然,你可以随心所欲地尝试这个
3195
02:08:45,270 --> 02:08:47,400
你可以在这里找到很多曲调的东西
3196
02:08:47,870 --> 02:08:50,300
好吧,我们有一个广告牌
3197
02:08:51,130 --> 02:08:52,870
终于完成了场景
3198
02:08:52,870 --> 02:08:57,370
我想将静态主体 2d 重命名为 billboard
3199
02:08:57,530 --> 02:08:59,100
然后保存所有这些
3200
02:09:00,700 --> 02:09:02,900
我想将其保存在场景中
3201
02:09:02,900 --> 02:09:03,970
那里我们有物体
3202
02:09:03,970 --> 02:09:05,130
我们已经有了蝙蝠
3203
02:09:05,130 --> 02:09:05,730
现在
3204
02:09:05,730 --> 02:09:08,130
我想将广告牌保存在同一文件夹中
3205
02:09:09,270 --> 02:09:10,070
然后
3206
02:09:10,070 --> 02:09:13,130
这就是练习第一部分所需的全部内容
3207
02:09:13,270 --> 02:09:16,300
所以回到所选级别的级别
3208
02:09:16,730 --> 02:09:18,000
我想添加
3209
02:09:18,330 --> 02:09:19,570
另一个子节点
3210
02:09:19,600 --> 02:09:22,070
我可以通过单击链符号来完成
3211
02:09:22,270 --> 02:09:24,600
或使用 Ctrl+Shift+a
3212
02:09:25,070 --> 02:09:26,470
那里有我们的广告牌
3213
02:09:26,470 --> 02:09:27,530
我可以点击打开
3214
02:09:27,800 --> 02:09:30,200
我们有一个广告牌
3215
02:09:30,970 --> 02:09:35,130
你也可以在这个关卡场景中对其进行变换
3216
02:09:35,130 --> 02:09:37,930
你所要做的就是去改造然后应用
3217
02:09:37,930 --> 02:09:39,700
例如旋转
3218
02:09:41,700 --> 02:09:42,700
像这样的东西
3219
02:09:42,700 --> 02:09:43,770
现在让我们运行游戏
3220
02:09:44,700 --> 02:09:48,070
在那里我们仍然发生碰撞
3221
02:09:48,100 --> 02:09:49,570
这个看起来真的很好
3222
02:09:50,470 --> 02:09:53,600
蝙蝠也能用,所以我对此非常满意
3223
02:09:54,470 --> 02:09:55,900
现在是什么让我烦恼
3224
02:09:55,900 --> 02:09:58,370
球棒位于玩家上方
3225
02:09:58,370 --> 02:10:00,200
这是因为蝙蝠来了
3226
02:10:00,200 --> 02:10:02,500
在音符树内的玩家之后
3227
02:10:02,930 --> 02:10:05,570
修复我想要移动玩家的问题
3228
02:10:06,000 --> 02:10:08,270
在此音符树内的蝙蝠下方
3229
02:10:08,570 --> 02:10:09,900
如果我现在再次运行这个
3230
02:10:10,530 --> 02:10:13,470
这感觉更加真实
3231
02:10:14,700 --> 02:10:15,200
稍后的
3232
02:10:15,200 --> 02:10:17,400
我们将在绘图顺序上做更多的工作
3233
02:10:17,400 --> 02:10:19,070
但这是一个更好的开始
3234
02:10:19,570 --> 02:10:20,130
接着就,随即
3235
02:10:20,130 --> 02:10:22,130
我们已经介绍了练习的第一部分
3236
02:10:22,300 --> 02:10:25,870
我还可以关闭蝙蝠场景和广告牌场景
3237
02:10:26,100 --> 02:10:28,270
我们不删除它们,只是在编辑器中关闭它们
3238
02:10:28,270 --> 02:10:29,900
您稍后仍然可以访问它们
3239
02:10:30,570 --> 02:10:33,770
我更喜欢打开尽可能少的水龙头
3240
02:10:33,770 --> 02:10:35,930
这样工作起来会更干净一些
3241
02:10:36,170 --> 02:10:38,800
现在接下来我们必须创建无人机
3242
02:10:38,800 --> 02:10:39,700
和这个
3243
02:10:39,870 --> 02:10:42,570
因为它会移动,所以它会成为一个角色
3244
02:10:42,570 --> 02:10:43,370
身体 2d
3245
02:10:43,930 --> 02:10:46,800
这意味着场景内的第一个音符
3246
02:10:46,970 --> 02:10:49,500
我想要一个 2d 角色身体
3247
02:10:50,270 --> 02:10:51,070
再次
3248
02:10:51,070 --> 02:10:54,270
这个角色身体 2d 需要一个精灵
3249
02:10:54,770 --> 02:10:56,470
我们可以找到一个精灵
3250
02:10:56,670 --> 02:10:58,300
不在物体内部
3251
02:10:58,300 --> 02:11:01,370
而是在敌人内部
3252
02:11:02,100 --> 02:11:03,370
我们有一架无人机
3253
02:11:03,370 --> 02:11:06,370
我想将这架无人机移至纹理中
3254
02:11:07,200 --> 02:11:09,900
这就是我们从图形文件夹中需要的全部内容
3255
02:11:10,200 --> 02:11:13,300
接下来我们必须添加碰撞形状
3256
02:11:13,700 --> 02:11:14,500
为了那个原因
3257
02:11:14,530 --> 02:11:17,930
我选择了 2d 角色身体,单击 Ctrl a
3258
02:11:18,300 --> 02:11:20,530
并添加碰撞形状 2d
3259
02:11:22,330 --> 02:11:23,770
对于这个碰撞形状
3260
02:11:24,070 --> 02:11:25,700
我想要一个自定义形状
3261
02:11:25,700 --> 02:11:27,530
这将是一个圆形
3262
02:11:28,130 --> 02:11:31,530
如果你现在仔细观察,我们会看到一个圆形
3263
02:11:31,530 --> 02:11:33,670
我想扩大规模
3264
02:11:34,000 --> 02:11:37,130
粗略地捕捉到石头的身体
3265
02:11:38,470 --> 02:11:41,270
我们再次有了基本的设置
3266
02:11:41,370 --> 02:11:44,570
我们有一个物理体、图像和碰撞形状
3267
02:11:44,770 --> 02:11:46,770
这样我就可以重命名事物
3268
02:11:47,070 --> 02:11:49,200
我们称父母为无人机
3269
02:11:49,470 --> 02:11:51,300
然后保存整个场景
3270
02:11:53,000 --> 02:11:54,070
为了这一切
3271
02:11:54,070 --> 02:11:57,900
我想添加另一个文件夹,我称之为敌人
3272
02:11:58,970 --> 02:12:01,970
在这个敌人的文件夹里我想要我的无人机
3273
02:12:03,000 --> 02:12:05,530
现在回到关卡内
3274
02:12:05,670 --> 02:12:08,330
我想添加选定的级别注释
3275
02:12:08,370 --> 02:12:11,530
我的无人机一直在顶部
3276
02:12:12,870 --> 02:12:15,400
让我们把无人机移到这里的某个地方
3277
02:12:15,730 --> 02:12:18,200
所以我们可以在游戏中完美地看到它
3278
02:12:19,130 --> 02:12:20,500
这样我们就有了一架无人机
3279
02:12:20,500 --> 02:12:23,000
并且与玩家的碰撞仍然有效
3280
02:12:23,070 --> 02:12:24,400
所以这是一个好的开始
3281
02:12:25,970 --> 02:12:28,930
为了完成任务,我们必须移动这架无人机
3282
02:12:29,200 --> 02:12:30,270
为此
3283
02:12:30,270 --> 02:12:33,700
在无人机内部,无人机将获取一个脚本
3284
02:12:35,130 --> 02:12:37,400
意思是我想附加一个新脚本
3285
02:12:38,370 --> 02:12:41,170
它应该与无人机位于同一文件夹中
3286
02:12:41,170 --> 02:12:42,930
现在就是这样
3287
02:12:43,170 --> 02:12:45,870
对于基本设置我想要空
3288
02:12:46,800 --> 02:12:48,400
我可以点击创建
3289
02:12:48,600 --> 02:12:49,600
我们就这样吧
3290
02:12:49,600 --> 02:12:52,070
我们现在有一个继承的空脚本
3291
02:12:52,070 --> 02:12:53,530
来自角色body2d
3292
02:12:53,870 --> 02:12:56,200
为了移动它,我们必须做点什么
3293
02:12:56,200 --> 02:12:58,270
与玩家相比大致相似
3294
02:12:58,270 --> 02:12:59,670
这意味着首先
3295
02:12:59,670 --> 02:13:01,570
我们需要一个流程函数
3296
02:13:01,770 --> 02:13:03,670
这个很有趣
3297
02:13:04,970 --> 02:13:05,800
过程
3298
02:13:06,100 --> 02:13:08,870
我们已经知道我们不会使用达美航空
3299
02:13:08,870 --> 02:13:11,130
所以我要立即添加下划线
3300
02:13:12,670 --> 02:13:14,300
这个函数内部
3301
02:13:14,470 --> 02:13:17,670
我们现在首先需要一个方向
3302
02:13:18,170 --> 02:13:20,400
然后我们必须更新速度
3303
02:13:20,900 --> 02:13:24,600
然后我们必须调用 move 和 Slide
3304
02:13:25,670 --> 02:13:28,730
这个方向是最简单的,因为我想要
3305
02:13:28,770 --> 02:13:30,970
这架无人机只是往右边走
3306
02:13:30,970 --> 02:13:32,070
最起码到现在
3307
02:13:32,530 --> 02:13:35,530
为此我想创建一个新变量
3308
02:13:35,530 --> 02:13:38,330
就像我们为玩家所做的那样,称之为方向
3309
02:13:38,700 --> 02:13:41,800
除了这个只是一个向量 2
3310
02:13:42,100 --> 02:13:44,370
有 1 和 0
3311
02:13:45,400 --> 02:13:47,530
这基本上意味着我们要向右走
3312
02:13:48,200 --> 02:13:50,900
我们实际上可以让它更具表现力
3313
02:13:50,900 --> 02:13:52,870
因为不是 1 和 0
3314
02:13:52,870 --> 02:13:55,900
我们可以正确输入点和所有大小写字母
3315
02:13:56,670 --> 02:13:58,270
结果是一样的
3316
02:13:59,100 --> 02:14:01,800
现在我们可以更新速度了
3317
02:14:02,130 --> 02:14:04,500
我们必须以速度属性为目标
3318
02:14:05,170 --> 02:14:06,930
然后得到方向
3319
02:14:07,000 --> 02:14:09,800
并乘以某种速度
3320
02:14:10,500 --> 02:14:12,370
对于这个,我们选择 400
3321
02:14:13,730 --> 02:14:17,470
最后我们要做的就是调用 move 和 slip
3322
02:14:17,530 --> 02:14:19,470
我们应该可以出发了
3323
02:14:20,000 --> 02:14:20,930
让我们运行游戏吧
3324
02:14:21,600 --> 02:14:22,400
我们就这样吧
3325
02:14:22,970 --> 02:14:24,470
我们让无人机移动
3326
02:14:24,470 --> 02:14:26,870
而且我们还与玩家发生了碰撞
3327
02:14:27,370 --> 02:14:29,900
让我们再次尝试所有这些,以便您看得更清楚
3328
02:14:30,330 --> 02:14:32,330
所以如果无人机与玩家相撞
3329
02:14:32,370 --> 02:14:34,300
它试图绕过它
3330
02:14:35,300 --> 02:14:38,730
我想把移动速度调低一点到100
3331
02:14:38,730 --> 02:14:40,270
将会更好地想象这一切
3332
02:14:40,730 --> 02:14:42,370
现在我们有一架非常慢的无人机
3333
02:14:42,370 --> 02:14:44,170
并且玩家可以阻止它
3334
02:14:44,170 --> 02:14:46,370
所以这两个物体之间发生了碰撞
3335
02:14:47,670 --> 02:14:49,800
如果玩家是
3336
02:14:51,070 --> 02:14:53,470
只是屏蔽了其中的一部分
3337
02:14:53,470 --> 02:14:55,700
然后无人机沿着玩家滑行
3338
02:14:55,900 --> 02:14:57,170
这就是我们得到的
3339
02:14:57,170 --> 02:14:59,500
因为我们正在使用移动和滑动
3340
02:15:00,500 --> 02:15:02,600
这位老板的演讲非常重要
3341
02:15:02,600 --> 02:15:03,970
所以我要在这里完成它
3342
02:15:04,100 --> 02:15:06,500
但一定要在你自己的时间里尝试一下这个
3343
02:15:06,500 --> 02:15:08,300
理解这一点真的很重要
3344
02:15:08,970 --> 02:15:10,530
再次完成这个视频
3345
02:15:10,900 --> 02:15:12,130
这种设置
3346
02:15:12,130 --> 02:15:15,270
基本上是任何类型游戏的基础
3347
02:15:15,270 --> 02:15:17,670
在谷歌,你有某种物理体
3348
02:15:17,670 --> 02:15:19,570
然后是图像,然后是碰撞形状
3349
02:15:19,600 --> 02:15:21,330
这是你经常看到的东西
3350
02:15:21,470 --> 02:15:23,770
以及我也会经常使用的东西
3351
02:15:24,570 --> 02:15:25,870
下一个主要部分
3352
02:15:25,930 --> 02:15:27,800
我们将创建一个区域来
3353
02:15:28,000 --> 02:15:30,370
并正确使用一个区域
3354
02:15:30,400 --> 02:15:32,930
我们还必须讨论信号
3355
02:15:32,930 --> 02:15:35,270
我稍后会介绍这一点
3356
02:15:35,900 --> 02:15:38,470
首先回顾一下
3357
02:15:39,200 --> 02:15:43,570
这是所有碰撞体 2d 的概述
3358
02:15:44,070 --> 02:15:46,470
到目前为止我们已经使用了2d美学身体
3359
02:15:46,530 --> 02:15:48,770
我们使用了 2d 角色身体
3360
02:15:49,130 --> 02:15:51,870
我认为目前这两个至少应该是
3361
02:15:51,870 --> 02:15:53,330
有点可行
3362
02:15:54,130 --> 02:15:57,500
对于这个视频,我想在 2d 区域上工作
3363
02:15:58,700 --> 02:15:59,970
作为提醒
3364
02:15:59,970 --> 02:16:02,130
只是一个可以检查的区域
3365
02:16:02,130 --> 02:16:03,800
如果另一具尸体进入
3366
02:16:03,870 --> 02:16:05,800
它还可以检查其他事情
3367
02:16:05,800 --> 02:16:07,970
但我现在想保持简单
3368
02:16:08,670 --> 02:16:10,130
最终我们要建造什么
3369
02:16:10,130 --> 02:16:12,870
是内部区域入口
3370
02:16:12,900 --> 02:16:14,970
2d 区域将被检查
3371
02:16:14,970 --> 02:16:16,870
如果玩家已进入该区域
3372
02:16:17,530 --> 02:16:18,370
话虽如此
3373
02:16:18,370 --> 02:16:20,530
有一个问题我们必须谈谈
3374
02:16:22,900 --> 02:16:25,730
现在我们可以使用一个区域来
3375
02:16:25,770 --> 02:16:27,900
但这毫无意义
3376
02:16:27,930 --> 02:16:30,730
它只是一个看不见的区域,无法做到
3377
02:16:30,730 --> 02:16:31,530
任何事物
3378
02:16:31,930 --> 02:16:33,100
作为结果
3379
02:16:33,100 --> 02:16:35,670
我们必须了解一些额外的功能
3380
02:16:35,670 --> 02:16:38,370
以便该地区能够真正做一些事情
3381
02:16:39,100 --> 02:16:41,700
该功能称为信号
3382
02:16:41,900 --> 02:16:44,500
信号非常重要
3383
02:16:45,200 --> 02:16:46,870
基本上他们在做什么
3384
02:16:46,970 --> 02:16:49,470
当某个节点发生某个动作时
3385
02:16:49,470 --> 02:16:52,000
例如身体进入某个区域
3386
02:16:52,200 --> 02:16:53,900
也可能是计时器耗尽
3387
02:16:53,900 --> 02:16:55,330
或两个物体相撞
3388
02:16:55,330 --> 02:16:57,870
以及一整套其他选择
3389
02:16:58,470 --> 02:17:00,270
如果这种情况发生在节点上
3390
02:17:00,300 --> 02:17:02,530
然后节点可以调用一段代码
3391
02:17:02,530 --> 02:17:03,900
在你的脚本中的某个地方
3392
02:17:03,900 --> 02:17:05,800
这就是所谓的信号
3393
02:17:05,970 --> 02:17:07,000
所以本质上
3394
02:17:07,000 --> 02:17:09,130
每当节点发生某个动作时
3395
02:17:09,130 --> 02:17:10,700
节点可以触发一些代码
3396
02:17:10,700 --> 02:17:12,530
这基本上就是发生的一切
3397
02:17:13,470 --> 02:17:15,570
这也非常强大
3398
02:17:15,570 --> 02:17:17,600
做笔记互相交流
3399
02:17:17,600 --> 02:17:19,570
让你的游戏更具互动性
3400
02:17:20,570 --> 02:17:21,470
回到戈多
3401
02:17:21,470 --> 02:17:24,400
我想先把事情清理一下
3402
02:17:24,700 --> 02:17:27,670
最重要的是我想删除无人机
3403
02:17:27,670 --> 02:17:29,400
广告牌和蝙蝠
3404
02:17:29,600 --> 02:17:31,770
因为我们现在不需要它们
3405
02:17:31,770 --> 02:17:33,400
我想要一点空间
3406
02:17:33,870 --> 02:17:36,600
我们剩下的唯一注释就是玩家
3407
02:17:36,870 --> 02:17:38,500
我们来试试这个场景
3408
02:17:38,500 --> 02:17:40,470
只是为了确保一切仍然正常
3409
02:17:40,470 --> 02:17:42,000
看起来不错
3410
02:17:42,270 --> 02:17:43,070
凉爽的
3411
02:17:43,730 --> 02:17:48,470
一旦我们有了,我想建一个入口 E 区
3412
02:17:48,500 --> 02:17:50,200
这将在稍后改变我们
3413
02:17:50,200 --> 02:17:52,200
从外部水平到内部水平
3414
02:17:53,500 --> 02:17:56,270
有一个图形包含所有这些
3415
02:17:56,300 --> 02:17:58,730
这是图形内部的
3416
02:17:58,730 --> 02:18:02,370
那里有物体,那里有门
3417
02:18:02,400 --> 02:18:03,670
我已经选择了
3418
02:18:04,900 --> 02:18:05,930
如果我双击它
3419
02:18:05,930 --> 02:18:09,270
你可以看到这是一个简单的入口区域
3420
02:18:09,530 --> 02:18:11,400
顺便说一下你还可以做什么
3421
02:18:11,400 --> 02:18:13,900
您可以简单地将节点定向到 Kudo
3422
02:18:14,000 --> 02:18:16,470
然后它会自动创建一个精灵
3423
02:18:16,470 --> 02:18:18,870
虽然我不经常使用它,但还是很不错的
3424
02:18:19,270 --> 02:18:22,170
但基本上我们有一个入口区域
3425
02:18:22,600 --> 02:18:25,400
你想要知道的是
3426
02:18:26,000 --> 02:18:30,270
只有这部分区域应该是可见的
3427
02:18:30,600 --> 02:18:33,570
如果玩家可以看到后面的区域
3428
02:18:33,570 --> 02:18:35,330
它看起来会有点破损
3429
02:18:35,470 --> 02:18:39,530
但这个想法是所有这些都是可碰撞的
3430
02:18:39,970 --> 02:18:41,670
然后一会儿
3431
02:18:41,670 --> 02:18:45,000
我们要在周围添加一些墙壁或障碍物
3432
02:18:45,130 --> 02:18:47,000
它周围的这些地区
3433
02:18:47,200 --> 02:18:49,530
这样玩家就永远无法到达这个位置
3434
02:18:49,900 --> 02:18:54,200
好吧,现在我想把入口区域向上移动一点
3435
02:18:54,270 --> 02:18:55,330
像这样
3436
02:18:55,930 --> 02:18:58,530
所以我们可以在当前场景中看得更清楚
3437
02:18:58,930 --> 02:19:00,500
稍后当我们有了相机的时候
3438
02:19:00,500 --> 02:19:02,570
所有这一切都将变得更加明显
3439
02:19:02,570 --> 02:19:04,700
但现在不用太担心
3440
02:19:04,700 --> 02:19:06,900
我们需要看看入口
3441
02:19:07,500 --> 02:19:08,900
所以让我运行游戏
3442
02:19:09,100 --> 02:19:12,870
在那里我们可以看到我们有一个入口区域
3443
02:19:12,870 --> 02:19:14,600
虽然它现在什么也没做
3444
02:19:14,670 --> 02:19:16,700
因为它实际上只是一个图像
3445
02:19:17,570 --> 02:19:18,870
我也想要这个
3446
02:19:19,200 --> 02:19:22,070
在播放器下方,因此播放器位于其上方
3447
02:19:22,700 --> 02:19:24,370
感觉好一点了
3448
02:19:24,900 --> 02:19:26,970
再次强调,现在不要太担心
3449
02:19:27,400 --> 02:19:29,070
这样我们就有了一个图像
3450
02:19:29,070 --> 02:19:32,070
但目前我们需要做两件事
3451
02:19:32,800 --> 02:19:35,930
第一是我们必须添加碰撞
3452
02:19:36,170 --> 02:19:39,470
这里的这些部分应该是可碰撞的
3453
02:19:39,470 --> 02:19:41,700
事实上如果我滚动一点
3454
02:19:43,330 --> 02:19:46,400
我想要一场大致的碰撞
3455
02:19:47,400 --> 02:19:48,370
这周围
3456
02:19:48,570 --> 02:19:53,070
然后我们有一个入口的切口然后我们有
3457
02:19:53,300 --> 02:19:55,530
其余可碰撞区域
3458
02:19:56,270 --> 02:19:58,730
为此我们必须了解一个新的音符
3459
02:19:58,730 --> 02:20:01,600
因为现在我们有了更不规则的碰撞形状
3460
02:20:01,670 --> 02:20:02,530
当我们有了那个之后
3461
02:20:02,600 --> 02:20:06,100
我们可以在这个令人着迷的地方周围添加一个区域
3462
02:20:06,270 --> 02:20:08,930
这实际上会触发一个动作
3463
02:20:08,930 --> 02:20:10,130
如果玩家输入
3464
02:20:10,400 --> 02:20:11,400
但接下来就是
3465
02:20:11,400 --> 02:20:14,170
首先让我们添加一个碰撞区域
3466
02:20:14,170 --> 02:20:15,370
选择级别音符
3467
02:20:15,370 --> 02:20:16,970
我要添加一个新节点
3468
02:20:16,970 --> 02:20:19,500
这又将是 2d 的美学身体
3469
02:20:19,930 --> 02:20:20,400
因为
3470
02:20:20,400 --> 02:20:23,600
这整个区域将是美学身体 2d
3471
02:20:24,070 --> 02:20:26,870
这个静态物体 2d 将得到
3472
02:20:27,130 --> 02:20:28,900
小时候的形象
3473
02:20:29,330 --> 02:20:29,970
与此
3474
02:20:29,970 --> 02:20:32,400
我还可以将所有内容移至播放器下方
3475
02:20:32,470 --> 02:20:35,470
所以我们再次重新建立了绘图顺序
3476
02:20:35,470 --> 02:20:37,000
门位于玩家下方的位置
3477
02:20:37,570 --> 02:20:40,470
这个静态 point2d 现在再次出现警告
3478
02:20:40,600 --> 02:20:43,700
我们需要一个碰撞形状
3479
02:20:44,000 --> 02:20:45,330
我已经可以看到
3480
02:20:45,330 --> 02:20:46,770
我们有一个碰撞形状 2d
3481
02:20:46,800 --> 02:20:48,670
或碰撞多边形 2d
3482
02:20:49,000 --> 02:20:51,000
到目前为止我们使用碰撞形状
3483
02:20:51,000 --> 02:20:53,530
现在我们将使用碰撞多边形 2d
3484
02:20:54,170 --> 02:20:57,170
这意味着选择了静态体 2d
3485
02:20:57,370 --> 02:20:59,170
我要再次点击加号
3486
02:20:59,530 --> 02:21:03,170
我将在搜索冲突中输入
3487
02:21:03,200 --> 02:21:06,570
多边形 2d 然后单击 Enter
3488
02:21:06,870 --> 02:21:09,900
现在我们得到了另一个节点
3489
02:21:10,500 --> 02:21:13,800
右侧的这个节点没有形状
3490
02:21:13,970 --> 02:21:17,900
相反,它顶部有这三个符号
3491
02:21:18,070 --> 02:21:19,730
我们已经创造了点
3492
02:21:20,100 --> 02:21:22,600
我们已经添加了积分并且我们有
3493
02:21:23,000 --> 02:21:24,070
擦除点
3494
02:21:24,770 --> 02:21:26,800
我将首先选择“创建点”
3495
02:21:26,800 --> 02:21:30,400
然后你可以简单地在所有这些上画点
3496
02:21:31,170 --> 02:21:35,170
基本上画出你想要的形状
3497
02:21:35,370 --> 02:21:36,530
围绕这个物体
3498
02:21:36,800 --> 02:21:40,100
我不会对这一切说得太精确
3499
02:21:41,700 --> 02:21:45,800
让我在这附近这样做
3500
02:21:46,700 --> 02:21:48,300
显然是为了真正的游戏
3501
02:21:48,300 --> 02:21:50,770
你确实想在这里说得更精确一些
3502
02:21:51,270 --> 02:21:53,570
让我像这样完成形状
3503
02:21:55,200 --> 02:21:56,970
在那里你可以看到我们有一个
3504
02:21:57,130 --> 02:21:59,130
覆盖区域的合理形状
3505
02:21:59,300 --> 02:22:00,970
如果你想更新一个点
3506
02:22:00,970 --> 02:22:02,170
你只需点击它即可
3507
02:22:02,170 --> 02:22:03,400
并移动它
3508
02:22:03,570 --> 02:22:06,500
就这样感觉还好
3509
02:22:08,170 --> 02:22:10,200
如果我放大
3510
02:22:10,970 --> 02:22:14,670
你可以更精确地了解所有这些
3511
02:22:14,700 --> 02:22:17,130
当你有两点之间的路径时
3512
02:22:17,130 --> 02:22:18,000
你可以看到一个加号
3513
02:22:18,000 --> 02:22:20,300
你可以点击它然后移动这个点
3514
02:22:20,970 --> 02:22:22,930
所以让我再补充一些
3515
02:22:24,000 --> 02:22:27,500
这看起来并不太可怕
3516
02:22:29,370 --> 02:22:30,570
至少在游戏方面
3517
02:22:30,570 --> 02:22:32,270
这应该可以正常工作
3518
02:22:33,130 --> 02:22:36,570
所以我可以稍微完善一下但是
3519
02:22:39,730 --> 02:22:40,600
如果你想拥有
3520
02:22:40,600 --> 02:22:42,970
一个非常适合你的游戏的碰撞机制
3521
02:22:42,970 --> 02:22:45,200
你确实想花一些时间在这一切上
3522
02:22:45,500 --> 02:22:47,000
但就我而言
3523
02:22:47,000 --> 02:22:48,970
不想让教程持续太久
3524
02:22:49,300 --> 02:22:50,100
好吧
3525
02:22:50,770 --> 02:22:52,600
我认为这运作得很好
3526
02:22:53,700 --> 02:22:54,800
让我们测试一下
3527
02:22:56,870 --> 02:23:01,070
如果我现在四处走动就会发生碰撞
3528
02:23:01,070 --> 02:23:02,270
有点难看
3529
02:23:02,270 --> 02:23:04,130
因为门占据了很大的空间
3530
02:23:04,130 --> 02:23:06,100
但它绝对有效
3531
02:23:06,800 --> 02:23:07,600
好的
3532
02:23:07,900 --> 02:23:12,730
这样我就可以将 static 重命名为 2d 为 Gate
3533
02:23:12,730 --> 02:23:13,770
感觉好一点
3534
02:23:13,930 --> 02:23:17,600
现在我们可以处理第二部分 2d 区域
3535
02:23:18,770 --> 02:23:20,130
选定门后
3536
02:23:20,130 --> 02:23:23,100
我将使用 Ctrl a 添加另一个注释
3537
02:23:23,330 --> 02:23:26,000
我想要一个 2d 区域
3538
02:23:27,200 --> 02:23:30,400
这又不会做任何事情
3539
02:23:30,400 --> 02:23:31,870
我们收到警告
3540
02:23:32,100 --> 02:23:34,270
我们需要添加一个形状
3541
02:23:34,370 --> 02:23:36,270
就像我们对所有其他碰撞所做的那样
3542
02:23:36,270 --> 02:23:37,070
物体
3543
02:23:37,730 --> 02:23:39,200
这必须是一个孩子
3544
02:23:39,200 --> 02:23:40,970
所以选择了 2d 区域
3545
02:23:40,970 --> 02:23:43,130
我要再次按 Ctrl a
3546
02:23:43,370 --> 02:23:46,470
对于这个我想要一个 2D 碰撞形状
3547
02:23:46,670 --> 02:23:47,800
所以让我们创建它
3548
02:23:48,400 --> 02:23:49,800
我们仍然看不到任何东西
3549
02:23:49,800 --> 02:23:51,000
我们又收到一个错误
3550
02:23:51,000 --> 02:23:52,770
现在我们必须提供一个形状
3551
02:23:53,100 --> 02:23:55,900
这将位于检查器形状的右侧
3552
02:23:55,900 --> 02:23:58,470
对于这个我想要一个矩形
3553
02:24:00,600 --> 02:24:04,100
我们现在可以在这里看到这个矩形
3554
02:24:05,900 --> 02:24:10,170
所以让我把它移到我想要的地方
3555
02:24:11,570 --> 02:24:14,070
这里的某个地方和
3556
02:24:16,200 --> 02:24:19,870
让我们把它移到像这样的某个区域
3557
02:24:20,000 --> 02:24:22,100
我也许应该把它弄得更窄一点
3558
02:24:22,570 --> 02:24:24,870
像这样的东西看起来不错
3559
02:24:25,530 --> 02:24:28,000
我想把它再往下移一点
3560
02:24:30,400 --> 02:24:34,130
这是一个大致不错的入口区域
3561
02:24:34,670 --> 02:24:36,400
但现在如果我运行游戏
3562
02:24:37,300 --> 02:24:40,530
你看不到它,它也不会做任何事
3563
02:24:40,670 --> 02:24:41,770
我还是有碰撞
3564
02:24:41,770 --> 02:24:43,270
所以不影响游戏
3565
02:24:43,330 --> 02:24:44,570
好吧
3566
02:24:44,670 --> 02:24:47,570
现在的问题是这个领域对你来说
3567
02:24:47,730 --> 02:24:49,200
字面意思就是这样
3568
02:24:49,200 --> 02:24:52,130
这是一个区域,除非我们赋予它额外的功能
3569
02:24:52,130 --> 02:24:53,300
它什么也没做
3570
02:24:53,300 --> 02:24:54,530
它根本就是看不见的
3571
02:24:54,800 --> 02:24:58,070
为了让它做某事,我们需要一个信号
3572
02:24:58,100 --> 02:25:02,170
以及您可以在注释选项卡右侧看到的信号
3573
02:25:02,500 --> 02:25:03,530
如果你点击那个
3574
02:25:03,930 --> 02:25:05,500
你得到信号
3575
02:25:05,500 --> 02:25:08,200
这些都是 2d 区域的所有信号
3576
02:25:08,200 --> 02:25:09,400
可以发出去
3577
02:25:09,930 --> 02:25:13,600
我们要使用的称为“正文输入”
3578
02:25:14,200 --> 02:25:16,900
每当身体出现时就会触发这个
3579
02:25:16,900 --> 02:25:18,330
就像角色身体 2d
3580
02:25:18,500 --> 02:25:20,170
进入该区域 2d
3581
02:25:20,970 --> 02:25:22,170
我们还可以检查
3582
02:25:22,170 --> 02:25:24,400
进入或退出另一个区域
3583
02:25:24,770 --> 02:25:28,000
我们可以检查一个区域形状是否已经进入
3584
02:25:28,000 --> 02:25:31,730
我们可以检查一系列其他事情
3585
02:25:32,200 --> 02:25:35,370
这些信号适用于每个音符
3586
02:25:35,370 --> 02:25:38,300
虽然每个音符都有不同种类的信号
3587
02:25:38,400 --> 02:25:40,370
例如,如果我们点击播放器
3588
02:25:40,570 --> 02:25:42,500
例如我们有信号
3589
02:25:42,500 --> 02:25:45,870
用于输入或鼠标输入或退出
3590
02:25:46,100 --> 02:25:47,930
但它们没那么有用
3591
02:25:48,300 --> 02:25:49,700
如果我点击关卡
3592
02:25:49,930 --> 02:25:51,400
我们得到的更少
3593
02:25:51,530 --> 02:25:52,570
例如在那里
3594
02:25:52,570 --> 02:25:55,570
如果当前音符已准备好,我们会收到一个信号
3595
02:25:55,570 --> 02:25:56,900
如果改名的话
3596
02:25:57,130 --> 02:25:58,470
如果它进入了树
3597
02:25:58,470 --> 02:26:02,000
或者如果它退出了树,这意味着它已被删除或
3598
02:26:02,000 --> 02:26:04,570
还有其他几个,但它们并不是太重要
3599
02:26:05,370 --> 02:26:07,970
d 的区域是具有以下特征的节点之一
3600
02:26:07,970 --> 02:26:10,370
大多数您真正关心的信号
3601
02:26:10,530 --> 02:26:11,870
实际使用信号
3602
02:26:11,870 --> 02:26:13,370
你必须双击它
3603
02:26:13,370 --> 02:26:16,130
所以就我而言,我想让身体进入
3604
02:26:16,130 --> 02:26:17,200
我双击它
3605
02:26:17,470 --> 02:26:19,370
现在我们看到另一个对话框
3606
02:26:20,600 --> 02:26:22,170
基本上将会发生什么
3607
02:26:23,300 --> 02:26:25,700
当这个身体进入时被触发
3608
02:26:25,770 --> 02:26:28,130
我们正在某处运行一个函数
3609
02:26:28,330 --> 02:26:32,170
这个函数只有当我们有脚本时才能运行
3610
02:26:32,200 --> 02:26:34,100
所以我们必须连接这个信号
3611
02:26:34,100 --> 02:26:37,070
到这个场景中的某种代码
3612
02:26:37,970 --> 02:26:41,300
现在在场景中我们有两个带有脚本的节点
3613
02:26:41,300 --> 02:26:43,470
我们有水平,我们有球员
3614
02:26:43,700 --> 02:26:45,500
我想将它连接到水平仪
3615
02:26:45,770 --> 02:26:48,170
这意味着选择级别后您可以看到它
3616
02:26:48,170 --> 02:26:49,330
我们那里有一个脚本
3617
02:26:49,570 --> 02:26:51,370
我想点击连接
3618
02:26:51,670 --> 02:26:52,800
尽管在你这样做之前
3619
02:26:53,100 --> 02:26:55,970
您还可以重命名我们要调用的函数
3620
02:26:55,970 --> 02:26:57,770
虽然你可能不应该
3621
02:26:58,070 --> 02:26:59,930
所以让我点击连接
3622
02:27:00,570 --> 02:27:04,500
现在我们在关卡中有一个函数
3623
02:27:04,670 --> 02:27:05,870
所以在这个节点内部
3624
02:27:05,870 --> 02:27:07,170
该节点的脚本内部
3625
02:27:07,170 --> 02:27:09,470
更具体地说,我们有一个函数
3626
02:27:09,930 --> 02:27:11,770
并且这个函数将会被触发
3627
02:27:11,900 --> 02:27:14,970
每当有物体进入 2d 区域时
3628
02:27:15,570 --> 02:27:19,330
除此之外,您还可以在区域 2d 节点上看到
3629
02:27:19,500 --> 02:27:23,330
我们有一个符号表示注释有一个连接
3630
02:27:23,800 --> 02:27:26,370
这基本上意味着音符有一个信号
3631
02:27:26,570 --> 02:27:27,770
让我们测试一下这个
3632
02:27:28,000 --> 02:27:30,930
如果是这种情况我想打印
3633
02:27:31,370 --> 02:27:34,170
假设身体已经进入
3634
02:27:35,070 --> 02:27:37,400
现在如果我运行所有这些
3635
02:27:38,170 --> 02:27:40,700
我们已经进入身体了
3636
02:27:40,700 --> 02:27:41,800
如果我去
3637
02:27:41,800 --> 02:27:44,470
与玩家一起进入该区域几次
3638
02:27:44,500 --> 02:27:47,930
你可以看到我们得到的body已经输入了多次
3639
02:27:51,200 --> 02:27:54,000
我们默认输入正文的原因
3640
02:27:54,000 --> 02:27:54,900
很好
3641
02:27:54,930 --> 02:27:57,500
玩家已经在该区域内
3642
02:27:57,500 --> 02:27:58,900
当比赛开始时
3643
02:27:59,370 --> 02:28:01,130
情况可能不应该如此
3644
02:28:01,130 --> 02:28:03,470
所以让我把播放器移到外面一点
3645
02:28:03,870 --> 02:28:05,070
现在如果我们再次运行这个
3646
02:28:06,330 --> 02:28:08,000
默认情况下我们不会收到任何消息
3647
02:28:08,000 --> 02:28:10,100
但如果我搬到这个地区
3648
02:28:10,100 --> 02:28:11,670
我们得到身体已经进入
3649
02:28:11,670 --> 02:28:13,530
我可以多次这样做
3650
02:28:15,000 --> 02:28:16,700
理解信号是另一回事
3651
02:28:16,700 --> 02:28:18,530
好面团的超级重要部分
3652
02:28:18,770 --> 02:28:20,670
所以如果你想玩玩
3653
02:28:20,670 --> 02:28:22,300
多一点这些信号
3654
02:28:22,300 --> 02:28:24,400
我绝对会推荐你这样做
3655
02:28:24,970 --> 02:28:26,570
我想我可以再添加一个
3656
02:28:26,570 --> 02:28:29,570
例如我们可以添加主体退出
3657
02:28:29,970 --> 02:28:31,770
这与输入的正文相反
3658
02:28:31,770 --> 02:28:33,600
每当有身体出现时它就会被触发
3659
02:28:33,600 --> 02:28:35,000
退出一个区域
3660
02:28:35,570 --> 02:28:37,570
为此我必须双击它
3661
02:28:37,670 --> 02:28:38,970
我必须再次
3662
02:28:38,970 --> 02:28:41,270
将其连接到某种脚本
3663
02:28:41,530 --> 02:28:43,530
我想再一次为这个关卡做这件事
3664
02:28:43,800 --> 02:28:45,400
现在再次单击并连接
3665
02:28:45,900 --> 02:28:47,570
现在我们有
3666
02:28:47,570 --> 02:28:50,370
级别节点内的另一个函数
3667
02:28:51,070 --> 02:28:53,730
例如,这个可以打印
3668
02:28:54,500 --> 02:28:57,170
身体已经退出
3669
02:28:58,730 --> 02:29:00,370
现在如果我再次运行整个过程
3670
02:29:00,600 --> 02:29:02,070
默认情况下我们什么也得不到
3671
02:29:02,130 --> 02:29:04,900
如果我进入身体已经进入的区域
3672
02:29:04,900 --> 02:29:06,070
如果我退出
3673
02:29:06,170 --> 02:29:07,270
身体已经退出
3674
02:29:08,200 --> 02:29:10,600
我想如果你玩弄这个系统
3675
02:29:10,600 --> 02:29:12,900
它应该相当简单
3676
02:29:12,900 --> 02:29:14,330
没有那么多
3677
02:29:14,700 --> 02:29:16,400
我想还有一件事
3678
02:29:16,400 --> 02:29:18,170
你应该知道的
3679
02:29:18,170 --> 02:29:21,500
有时一个信号会给你一个论点
3680
02:29:21,870 --> 02:29:24,130
在这种情况下,是身体进入了
3681
02:29:24,130 --> 02:29:24,970
你可以看到
3682
02:29:24,970 --> 02:29:27,500
因为我们有一个默认得到的参数
3683
02:29:27,500 --> 02:29:28,570
进入这个函数
3684
02:29:29,530 --> 02:29:32,900
例如我们可以打印这个身体
3685
02:29:34,100 --> 02:29:36,330
现在如果我再次运行它
3686
02:29:37,470 --> 02:29:38,900
我们得到输入的正文
3687
02:29:38,900 --> 02:29:41,400
我们得到了玩家角色节点
3688
02:29:41,700 --> 02:29:45,370
因为这是进入这个区域2d的身体
3689
02:29:45,470 --> 02:29:46,800
所以当我们打印身体时
3690
02:29:46,800 --> 02:29:48,270
我们正在打印播放器
3691
02:29:49,130 --> 02:29:52,470
让我把右边扩大一点
3692
02:29:52,900 --> 02:29:57,270
有时一个节点有很多参数
3693
02:29:57,370 --> 02:29:59,800
例如当我们寻找输入的区域时
3694
02:29:59,800 --> 02:30:01,930
我们可以捕获已进入的区域
3695
02:30:02,130 --> 02:30:04,330
或者如果我们寻找输入的区域形状
3696
02:30:04,330 --> 02:30:07,300
你会得到很多额外的参数
3697
02:30:07,770 --> 02:30:09,100
你确实想了解他们
3698
02:30:09,100 --> 02:30:11,100
因为有时它们真的很有用
3699
02:30:11,500 --> 02:30:14,330
虽然在这种情况下我们不需要它们
3700
02:30:15,330 --> 02:30:16,270
因为那个
3701
02:30:16,270 --> 02:30:18,170
你已经可以在调试器中看到它
3702
02:30:19,130 --> 02:30:20,700
我们有一个警告
3703
02:30:20,700 --> 02:30:23,100
函数中从未使用参数体
3704
02:30:23,200 --> 02:30:25,070
所以 Goodo 想要一个下划线
3705
02:30:25,400 --> 02:30:27,970
或者至少它会非常推荐它强调
3706
02:30:28,200 --> 02:30:29,000
所以为此
3707
02:30:29,000 --> 02:30:32,300
我要为这两个添加下划线
3708
02:30:32,670 --> 02:30:36,070
函数并去掉 print 语句
3709
02:30:36,070 --> 02:30:37,570
因为我们不需要它
3710
02:30:38,100 --> 02:30:42,170
至此,我们已经了解了信号的基础知识
3711
02:30:42,730 --> 02:30:44,200
还有另外一个地方
3712
02:30:44,200 --> 02:30:46,300
我们将立即使用它的地方
3713
02:30:46,470 --> 02:30:49,200
这将在播放器内部
3714
02:30:50,970 --> 02:30:52,970
现在玩家可以
3715
02:30:53,000 --> 02:30:54,070
发射激光
3716
02:30:54,070 --> 02:30:55,100
并发射一枚手榴弹
3717
02:30:55,100 --> 02:30:56,770
每当我们按下按钮时
3718
02:30:57,130 --> 02:30:58,270
让我实际演示一下
3719
02:30:58,570 --> 02:31:00,400
我可以点击
3720
02:31:00,600 --> 02:31:02,070
鼠标左键
3721
02:31:02,130 --> 02:31:03,600
我们正在拍摄激光
3722
02:31:03,600 --> 02:31:05,300
以最快的速度点击按钮
3723
02:31:05,470 --> 02:31:06,470
与手榴弹相同
3724
02:31:06,530 --> 02:31:07,400
如果我右键单击
3725
02:31:07,400 --> 02:31:09,570
我们正在以最快的速度获取手榴弹
3726
02:31:10,530 --> 02:31:12,130
这不是我想要的
3727
02:31:12,530 --> 02:31:15,730
相反,我想在之间有一个延迟
3728
02:31:16,170 --> 02:31:18,400
发射激光或发射手榴弹
3729
02:31:19,130 --> 02:31:22,900
为此我将添加更多逻辑
3730
02:31:23,270 --> 02:31:24,400
一直在顶部
3731
02:31:24,400 --> 02:31:26,070
我要添加两个变量
3732
02:31:26,070 --> 02:31:30,000
第一个将被称为 VAR 激光
3733
02:31:30,300 --> 02:31:32,330
这将是一个布尔值
3734
02:31:32,330 --> 02:31:34,470
默认情况下是 true
3735
02:31:35,070 --> 02:31:38,370
之后我可以按 Ctrl 或 CMD shift 和 d
3736
02:31:38,470 --> 02:31:40,330
并复制整行
3737
02:31:40,970 --> 02:31:44,330
我要把罐头激光改成罐头手榴弹
3738
02:31:44,570 --> 02:31:47,470
这也是一个布尔值,默认情况下是
3739
02:31:47,470 --> 02:31:48,270
真的
3740
02:31:49,000 --> 02:31:52,600
我将在其中使用这两个布尔值
3741
02:31:52,600 --> 02:31:54,600
这两个输入语句
3742
02:31:55,000 --> 02:31:55,670
首先
3743
02:31:55,670 --> 02:31:57,970
我只会允许游戏发射激光
3744
02:31:58,070 --> 02:31:59,900
如果输入动作为真
3745
02:32:00,070 --> 02:32:04,170
激光也可以
3746
02:32:04,700 --> 02:32:05,730
手榴弹也一样
3747
02:32:05,730 --> 02:32:09,600
我想检查输入并可以重新生成
3748
02:32:09,970 --> 02:32:12,970
GD 脚本也像 Python 一样工作
3749
02:32:13,130 --> 02:32:16,770
无需添加 can Laser 等于 true
3750
02:32:17,670 --> 02:32:20,530
如果这个值本身为真那么
3751
02:32:20,700 --> 02:32:24,000
GD 脚本将评估整个事情是否属实
3752
02:32:24,670 --> 02:32:25,870
函数内部
3753
02:32:25,870 --> 02:32:31,770
现在我想将激光设置为故障并且可以
3754
02:32:32,670 --> 02:32:35,930
手榴弹也掉落
3755
02:32:37,500 --> 02:32:38,700
如果我再次运行游戏
3756
02:32:39,070 --> 02:32:40,600
我只能拍摄一次
3757
02:32:40,600 --> 02:32:44,070
所以如果我左键单击我可以射击一次
3758
02:32:44,600 --> 02:32:45,570
不要再这样做
3759
02:32:45,770 --> 02:32:47,000
如果我右键单击
3760
02:32:47,000 --> 02:32:49,270
我也可以发射一次手榴弹,但不能再发射一次
3761
02:32:49,930 --> 02:32:53,130
那是因为我们只能做其中一件事情
3762
02:32:53,330 --> 02:32:55,930
激光或手榴弹是否属实
3763
02:32:56,530 --> 02:32:57,530
事实并非如此
3764
02:32:57,530 --> 02:32:58,600
一旦我们做过一次
3765
02:32:58,600 --> 02:33:00,500
因为我们将其设置为错误
3766
02:33:01,100 --> 02:33:03,270
现在我们必须使用计时器来重新激活
3767
02:33:03,270 --> 02:33:04,900
这两个变量
3768
02:33:04,930 --> 02:33:07,700
计时器只是另一个注释
3769
02:33:07,870 --> 02:33:09,530
所以选择的玩家
3770
02:33:09,700 --> 02:33:11,730
我想添加另一个注释
3771
02:33:11,730 --> 02:33:14,000
这个音符被称为计时器
3772
02:33:14,870 --> 02:33:19,130
计时器有几个可以使用的参数
3773
02:33:19,330 --> 02:33:20,670
我们还有时间
3774
02:33:20,730 --> 02:33:22,330
这是计时器的长度
3775
02:33:22,670 --> 02:33:23,870
那么我们还有一次机会
3776
02:33:24,130 --> 02:33:27,300
这个告诉计时器只运行一次
3777
02:33:27,300 --> 02:33:30,170
如果它被停用,它将持续运行
3778
02:33:31,270 --> 02:33:32,870
终于我们有了自动启动
3779
02:33:32,930 --> 02:33:35,370
这告诉计时器自动启动
3780
02:33:35,370 --> 02:33:36,730
一旦它被创建
3781
02:33:37,470 --> 02:33:38,900
还有一个计时器
3782
02:33:38,930 --> 02:33:41,970
有几个您需要注意的信号
3783
02:33:42,070 --> 02:33:43,530
虽然超时是一个
3784
02:33:43,530 --> 02:33:45,000
你真的想关心
3785
02:33:46,670 --> 02:33:49,300
一旦我们掌握了所有这些,我们就可以做一个练习
3786
02:33:50,570 --> 02:33:51,200
我想
3787
02:33:51,200 --> 02:33:54,130
你们把计时器持续时间设置为半秒
3788
02:33:54,300 --> 02:33:57,670
一旦激光器关闭,计时器就应该启动
3789
02:33:58,070 --> 02:34:00,470
为此请检查计时器的方法
3790
02:34:01,330 --> 02:34:02,270
当你拥有那个之后
3791
02:34:02,600 --> 02:34:03,970
一旦计时器结束
3792
02:34:03,970 --> 02:34:06,370
激光可以设置回真实值吗
3793
02:34:06,370 --> 02:34:08,770
为此你想使用一个信号
3794
02:34:10,100 --> 02:34:12,200
最后添加另一个计时器
3795
02:34:12,200 --> 02:34:14,730
再次为手榴弹做这一切
3796
02:34:14,770 --> 02:34:15,930
现在唯一的区别
3797
02:34:15,930 --> 02:34:18,270
就是冷却时间应该是2秒
3798
02:34:19,200 --> 02:34:21,900
可能现在并尝试实施所有这些
3799
02:34:25,500 --> 02:34:27,730
回到古多内部
3800
02:34:27,770 --> 02:34:29,970
我们必须讨论几件事
3801
02:34:30,330 --> 02:34:32,400
首先是计时器
3802
02:34:32,470 --> 02:34:36,070
我想将时间设置为 0.5
3803
02:34:36,670 --> 02:34:38,970
这将是计时器的长度
3804
02:34:39,500 --> 02:34:42,730
最重要的是,因为我只想让这个计时器运行一次
3805
02:34:42,770 --> 02:34:44,400
我们想要启用一击
3806
02:34:44,900 --> 02:34:46,100
虽然自动启动
3807
02:34:46,100 --> 02:34:47,530
不应启用
3808
02:34:47,530 --> 02:34:49,570
因为我们希望这个计时器只启动
3809
02:34:49,570 --> 02:34:51,400
一旦戏剧发射激光
3810
02:34:52,070 --> 02:34:54,800
说到这里我们必须看一些代码
3811
02:34:55,000 --> 02:34:58,000
因为一旦运行了这里的所有代码
3812
02:34:58,130 --> 02:34:59,730
我们想要激活计时器
3813
02:35:00,530 --> 02:35:01,970
我们可以很容易地做到这一点
3814
02:35:01,970 --> 02:35:04,270
我首先想要得到计时器本身
3815
02:35:04,270 --> 02:35:06,470
我可以简单地将它拖到代码中
3816
02:35:06,500 --> 02:35:07,800
我们有一个计时器
3817
02:35:08,330 --> 02:35:12,170
要启动计时器,我们需要方法 start
3818
02:35:12,800 --> 02:35:14,770
我们要做的最后一件事
3819
02:35:14,900 --> 02:35:16,870
定时器结束后
3820
02:35:17,000 --> 02:35:19,500
我们想将激光设置回真
3821
02:35:19,570 --> 02:35:21,470
为此我们需要一个信号
3822
02:35:21,930 --> 02:35:23,000
节点内部
3823
02:35:23,000 --> 02:35:25,470
我想使用超时信号
3824
02:35:25,800 --> 02:35:26,970
我双击它
3825
02:35:27,070 --> 02:35:29,000
并将其连接到播放器脚本
3826
02:35:29,700 --> 02:35:31,200
我不必更改名字
3827
02:35:31,200 --> 02:35:32,670
这个很好
3828
02:35:32,900 --> 02:35:37,100
我可以点击连接,现在我们有定时器超时
3829
02:35:37,670 --> 02:35:38,700
这将要运行
3830
02:35:38,730 --> 02:35:41,530
每当计时器结束或超时时
3831
02:35:42,700 --> 02:35:45,800
我想要在里面做的是我想要设置 can
3832
02:35:46,470 --> 02:35:48,730
激光返真
3833
02:35:49,670 --> 02:35:51,000
这就是我所需要的
3834
02:35:51,000 --> 02:35:52,900
所以现在我可以再次运行游戏
3835
02:35:53,370 --> 02:35:55,330
我现在可以随心所欲地点击
3836
02:35:55,530 --> 02:35:58,370
但我们每半秒才发射一次激光
3837
02:35:59,700 --> 02:36:01,130
我们可以实际测试一下
3838
02:36:01,130 --> 02:36:03,100
如果我将计时器设置为
3839
02:36:03,100 --> 02:36:04,900
检查员中更长的东西
3840
02:36:04,900 --> 02:36:07,000
让我们说秒
3841
02:36:07,600 --> 02:36:08,930
再次鳟鱼
3842
02:36:09,400 --> 02:36:10,370
我现在可以点击它
3843
02:36:10,370 --> 02:36:12,400
再次发射激光需要更长的时间
3844
02:36:12,400 --> 02:36:15,070
但我们仍然觉得很酷
3845
02:36:16,870 --> 02:36:19,370
不过 0.5 是一个更好的值
3846
02:36:19,900 --> 02:36:22,800
接下来我们必须添加另一个计时器
3847
02:36:23,070 --> 02:36:24,930
对于选定的玩家
3848
02:36:25,070 --> 02:36:27,530
我要再添加一个计时器
3849
02:36:27,770 --> 02:36:31,500
我要把这个计时器重命名为手榴弹
3850
02:36:32,100 --> 02:36:34,300
重新加载计时器
3851
02:36:36,070 --> 02:36:37,770
在你的游戏中它会
3852
02:36:37,770 --> 02:36:40,670
重命名激光计时器可能也是个好主意
3853
02:36:40,670 --> 02:36:41,670
虽然就我而言
3854
02:36:41,670 --> 02:36:43,470
我不会为此太担心
3855
02:36:44,000 --> 02:36:45,900
这个手榴弹卷取器计时器
3856
02:36:45,930 --> 02:36:48,300
等待时间为 2
3857
02:36:48,400 --> 02:36:50,530
并且还应该启用一击
3858
02:36:51,400 --> 02:36:52,200
接下来
3859
02:36:52,200 --> 02:36:55,800
在节点内部我想连接超时信号
3860
02:36:56,070 --> 02:36:57,200
所以我双击它
3861
02:36:57,200 --> 02:36:59,170
并将其连接到播放器的脚本
3862
02:37:00,200 --> 02:37:02,000
该函数内部
3863
02:37:02,000 --> 02:37:06,670
我想做的就是将手榴弹设置为 true
3864
02:37:07,570 --> 02:37:09,570
这应该就是我们所需要的
3865
02:37:09,670 --> 02:37:12,170
所以现在我仍然可以使用激光射击
3866
02:37:12,170 --> 02:37:14,530
现在如果我右键单击我们会射击手榴弹
3867
02:37:14,900 --> 02:37:16,770
如果我继续按它
3868
02:37:19,870 --> 02:37:21,100
什么都不会发生
3869
02:37:22,000 --> 02:37:23,070
原因
3870
02:37:23,330 --> 02:37:26,200
位于输入语句内部
3871
02:37:26,200 --> 02:37:27,600
对于次要动作
3872
02:37:27,730 --> 02:37:30,200
我们没有启动手榴弹计时器
3873
02:37:30,600 --> 02:37:32,100
我们可以很容易做到
3874
02:37:32,100 --> 02:37:35,000
我需要手榴弹装弹计时器并将其拖到那里
3875
02:37:35,100 --> 02:37:36,930
然后启动它
3876
02:37:37,530 --> 02:37:38,770
现在让我们再试一次
3877
02:37:39,200 --> 02:37:40,600
我仍然可以使用激光
3878
02:37:40,600 --> 02:37:43,530
现在射击手榴弹应该每 2 秒起作用一次
3879
02:37:43,530 --> 02:37:45,770
这看起来不错
3880
02:37:46,870 --> 02:37:47,670
凉爽的
3881
02:37:49,530 --> 02:37:50,200
接着就,随即
3882
02:37:50,200 --> 02:37:53,500
我们已经介绍了goodoo非常重要的部分
3883
02:37:53,930 --> 02:37:56,530
特别针对 2d 区域的信号
3884
02:37:56,700 --> 02:37:58,800
或用于计时器
3885
02:37:58,800 --> 02:38:01,470
是你会一直使用的东西
3886
02:38:01,900 --> 02:38:02,800
另一个非常重要的
3887
02:38:02,800 --> 02:38:05,000
你可以用信号做的事情就是创建
3888
02:38:05,000 --> 02:38:09,170
你自己的,有时这是绝对必要的
3889
02:38:09,800 --> 02:38:11,600
您可以创建自己的信号
3890
02:38:11,600 --> 02:38:13,700
但你为什么要这么做
3891
02:38:14,070 --> 02:38:15,400
原因是
3892
02:38:15,400 --> 02:38:17,500
信号的主要局限性
3893
02:38:17,500 --> 02:38:18,730
是他们只能工作
3894
02:38:18,730 --> 02:38:21,370
同一场景内的节点之间
3895
02:38:21,770 --> 02:38:23,900
并触发自定义信号可以
3896
02:38:23,900 --> 02:38:26,770
真正帮助你在场景之间进行沟通
3897
02:38:27,330 --> 02:38:30,570
实际上我们在某种程度上已经遇到了这个问题
3898
02:38:30,570 --> 02:38:31,400
我们来看一下
3899
02:38:32,300 --> 02:38:34,070
在我们的关卡场景中
3900
02:38:34,100 --> 02:38:36,530
我们目前有两个主要的孩子
3901
02:38:36,530 --> 02:38:37,500
我们有玩家
3902
02:38:37,500 --> 02:38:40,130
这个完全没问题,然后我们就有了大门
3903
02:38:40,470 --> 02:38:45,130
如果我扩大的话,门穹顶是相当大的
3904
02:38:45,330 --> 02:38:48,200
理想情况下,所有这些都应该是一个单独的场景
3905
02:38:48,300 --> 02:38:50,530
但这我们现在不能做
3906
02:38:50,770 --> 02:38:54,130
因为区域 2d 节点发送信号
3907
02:38:54,130 --> 02:38:56,130
正在被关卡捕获
3908
02:38:56,670 --> 02:38:57,670
事实上
3909
02:38:57,670 --> 02:38:59,170
让我们重建这一切
3910
02:38:59,170 --> 02:39:02,100
然后你就可以清楚地看到问题出在哪里
3911
02:39:02,500 --> 02:39:05,330
为此,让我关闭无人机场景
3912
02:39:05,330 --> 02:39:07,200
我想创建一个新场景
3913
02:39:08,870 --> 02:39:12,170
我想添加一个静态主体 2d
3914
02:39:12,700 --> 02:39:14,770
这将是大门
3915
02:39:15,970 --> 02:39:16,770
和这个门
3916
02:39:16,770 --> 02:39:18,930
将会和我们所做的一样
3917
02:39:18,930 --> 02:39:20,570
与所有这些节点
3918
02:39:20,770 --> 02:39:24,070
这意味着我首先要添加的是 Sprite 2D
3919
02:39:24,200 --> 02:39:27,200
这将像这样得到门
3920
02:39:29,330 --> 02:39:34,200
最重要的是我想添加一个碰撞多边形 2d
3921
02:39:35,000 --> 02:39:37,370
这会得到一些分数
3922
02:39:37,370 --> 02:39:39,670
让我做得快一点
3923
02:39:40,530 --> 02:39:41,170
再次第一次
3924
02:39:41,170 --> 02:39:42,270
对于本教程
3925
02:39:42,270 --> 02:39:44,670
看起来怎么样并不重要
3926
02:39:49,570 --> 02:39:50,930
尤其是
3927
02:39:50,930 --> 02:39:52,730
角落是一些东西
3928
02:39:52,730 --> 02:39:54,770
你想花一些时间
3929
02:39:54,770 --> 02:39:57,370
但就我而言,我并不太担心
3930
02:39:57,500 --> 02:39:59,900
好了,这看起来还过得去
3931
02:40:00,900 --> 02:40:03,300
接下来我们必须添加 2d 区域
3932
02:40:03,300 --> 02:40:04,670
和碰撞形状
3933
02:40:05,300 --> 02:40:08,330
为此我想添加一个 2d 区域
3934
02:40:08,330 --> 02:40:12,500
这个 2d 区域将会得到一个碰撞形状 2d
3935
02:40:13,730 --> 02:40:17,300
如果我放大一点,我们必须添加形状
3936
02:40:17,300 --> 02:40:18,730
我们想要一个矩形
3937
02:40:18,730 --> 02:40:22,370
这个矩形现在一直在顶部
3938
02:40:23,470 --> 02:40:27,170
我想稍微扩展一下
3939
02:40:31,200 --> 02:40:34,800
就像这样,这真的不必太大
3940
02:40:35,170 --> 02:40:39,070
另外你现在要避免的是这个二维区域
3941
02:40:39,170 --> 02:40:41,170
触摸静态物体 2d
3942
02:40:41,470 --> 02:40:44,500
当我们寻找进入这个形状的身体时
3943
02:40:44,500 --> 02:40:47,070
身体也可以是门本身
3944
02:40:47,070 --> 02:40:48,900
所以你确实要小心一点
3945
02:40:48,900 --> 02:40:50,300
但我们可以解释这一点
3946
02:40:50,300 --> 02:40:51,800
我稍后会介绍这一点
3947
02:40:52,470 --> 02:40:55,300
现在我们有了基本设置
3948
02:40:55,800 --> 02:40:58,270
我想保存在下面
3949
02:40:58,700 --> 02:41:01,100
场景,让我们把它放在物体下面
3950
02:41:01,100 --> 02:41:02,570
基本上就是这样
3951
02:41:03,530 --> 02:41:04,900
这样我们就有了一扇门
3952
02:41:04,900 --> 02:41:09,100
这样我就可以摆脱所有这些东西所以删除
3953
02:41:09,470 --> 02:41:11,270
以及关卡内部
3954
02:41:11,700 --> 02:41:14,730
我想摆脱这两个功能
3955
02:41:14,730 --> 02:41:15,130
因为
3956
02:41:15,130 --> 02:41:17,730
发送信号的音符不再存在
3957
02:41:18,470 --> 02:41:20,570
而不是选择的级别
3958
02:41:20,570 --> 02:41:22,670
我想安装门
3959
02:41:23,000 --> 02:41:24,530
我可以这样做
3960
02:41:25,300 --> 02:41:27,100
选择场景然后开始
3961
02:41:27,100 --> 02:41:29,500
现在我们在功能上有相同的结果
3962
02:41:30,530 --> 02:41:32,370
虽然如果我运行游戏
3963
02:41:33,170 --> 02:41:34,970
我们没有
3964
02:41:35,470 --> 02:41:36,870
任何类型的信号
3965
02:41:36,870 --> 02:41:39,100
一旦玩家进入该区域太深
3966
02:41:39,570 --> 02:41:41,600
我也希望门位于玩家下方
3967
02:41:41,600 --> 02:41:43,600
所以看起来没那么糟糕
3968
02:41:44,600 --> 02:41:47,670
主要问题是选择的区域 2d
3969
02:41:47,700 --> 02:41:48,930
我可以点击节点
3970
02:41:48,930 --> 02:41:52,270
如果有人进入,我想运行一些代码
3971
02:41:52,270 --> 02:41:53,500
该区域 2d
3972
02:41:53,900 --> 02:41:55,370
但如果我现在点击它
3973
02:41:55,770 --> 02:41:59,870
我无法选择该场景之外的任何节点
3974
02:42:00,330 --> 02:42:01,730
这是一个问题
3975
02:42:01,900 --> 02:42:05,700
因为我必须将代码连接到这个关卡脚本
3976
02:42:06,000 --> 02:42:07,470
这真的很重要
3977
02:42:07,470 --> 02:42:08,200
因为水平
3978
02:42:08,200 --> 02:42:11,000
将组织整个比赛
3979
02:42:11,130 --> 02:42:13,700
所以如果玩家有的话它需要有信息
3980
02:42:13,700 --> 02:42:14,770
是否输入
3981
02:42:15,100 --> 02:42:16,730
我们无法保持逻辑有序
3982
02:42:16,730 --> 02:42:17,800
场景内部
3983
02:42:17,800 --> 02:42:21,070
它只需要在更多空间中可用
3984
02:42:21,730 --> 02:42:23,270
并使这一切顺利进行
3985
02:42:23,330 --> 02:42:25,530
我们必须发送自定义信号
3986
02:42:26,670 --> 02:42:28,800
我们要创建的自定义信号
3987
02:42:28,800 --> 02:42:30,330
门内
3988
02:42:31,770 --> 02:42:35,500
或者更具体地说,该场景的根节点
3989
02:42:36,330 --> 02:42:38,570
这将得到一个脚本,所以
3990
02:42:39,130 --> 02:42:42,100
对象和文件夹门都很好
3991
02:42:42,100 --> 02:42:44,500
现在我们在门上附加了一个脚本
3992
02:42:44,930 --> 02:42:47,300
我不需要任何 inbult 函数
3993
02:42:47,670 --> 02:42:49,070
而是我想做的事
3994
02:42:49,130 --> 02:42:51,500
首先这个区域是 2d
3995
02:42:51,900 --> 02:42:54,730
现在将连接到此脚本
3996
02:42:54,870 --> 02:42:56,470
所以身体进入了
3997
02:42:56,530 --> 02:43:00,200
现在由于门有一个脚本我可以连接一个信号
3998
02:43:00,570 --> 02:43:03,330
所以在区域 2d 身体进入
3999
02:43:03,500 --> 02:43:05,930
我现在可以再次打印
4000
02:43:06,300 --> 02:43:08,900
身体已进入
4001
02:43:09,470 --> 02:43:11,130
这也行
4002
02:43:11,130 --> 02:43:12,600
所以如果我运行所有这些
4003
02:43:12,800 --> 02:43:15,930
我可以撞上它,现在一具尸体已经进入了
4004
02:43:15,930 --> 02:43:17,900
所以这仍然有效
4005
02:43:18,770 --> 02:43:19,700
现在的问题
4006
02:43:19,770 --> 02:43:21,770
就是这个信息
4007
02:43:21,770 --> 02:43:24,530
我需要了解我的关卡脚本的内部情况
4008
02:43:25,800 --> 02:43:29,300
为了实现这一点,我们必须创建一个自定义信号
4009
02:43:29,530 --> 02:43:31,070
这实际上很容易
4010
02:43:31,070 --> 02:43:32,500
它的工作原理有点相似
4011
02:43:32,500 --> 02:43:34,470
与创建变量相比
4012
02:43:35,370 --> 02:43:38,400
创建信号的关键字称为 signal
4013
02:43:38,600 --> 02:43:41,070
接下来我们必须给它一个名字
4014
02:43:41,530 --> 02:43:43,470
我们称之为玩家
4015
02:43:43,870 --> 02:43:44,670
进入
4016
02:43:45,270 --> 02:43:49,200
门,一旦你输入这两个关键字
4017
02:43:49,200 --> 02:43:52,370
信号一词,然后是信号的名称
4018
02:43:52,570 --> 02:43:53,930
回到水平
4019
02:43:54,200 --> 02:43:56,530
你可以选择这个场景
4020
02:43:56,670 --> 02:44:00,170
并在下面注明,您现在已经玩家进入了大门
4021
02:44:00,270 --> 02:44:01,600
你可以在顶部看到
4022
02:44:01,730 --> 02:44:04,330
这是因为 GD 门内部
4023
02:44:04,370 --> 02:44:05,970
我们现在有这个信号
4024
02:44:05,970 --> 02:44:07,500
这是一个自定义信号
4025
02:44:07,900 --> 02:44:09,800
你可以在水龙头处看到
4026
02:44:10,770 --> 02:44:12,700
信号来自哪里
4027
02:44:12,870 --> 02:44:16,470
例如一些信号连接到一个节点
4028
02:44:16,470 --> 02:44:18,900
其他信号连接到画布项目
4029
02:44:18,930 --> 02:44:21,600
一些连接到 D 的碰撞对象
4030
02:44:22,200 --> 02:44:24,300
但在本例中我们有一个脚本
4031
02:44:24,300 --> 02:44:26,270
这就是这个信号的来源
4032
02:44:26,400 --> 02:44:28,870
您可以像使用任何其他信号一样使用该信号
4033
02:44:28,870 --> 02:44:30,100
这样我就可以双击它
4034
02:44:30,300 --> 02:44:32,270
现在将其连接到水平仪
4035
02:44:32,870 --> 02:44:35,800
现在我们上了门 玩家进入了门
4036
02:44:35,970 --> 02:44:38,270
这里的命名并不理想,但是
4037
02:44:38,700 --> 02:44:39,730
反正你懂这个意思
4038
02:44:40,200 --> 02:44:44,270
如果我们触发这个信号我现在想打印
4039
02:44:44,870 --> 02:44:47,470
层已进入门
4040
02:44:47,900 --> 02:44:49,870
不过我们还需要一件事
4041
02:44:49,870 --> 02:44:53,200
那是在 GD 门里面
4042
02:44:53,800 --> 02:44:55,530
我们已经创建了一个信号
4043
02:44:55,700 --> 02:44:58,730
但现在我们必须触发这个信号
4044
02:44:58,730 --> 02:45:01,600
几乎具体来说,这里的键盘被称为
4045
02:45:01,600 --> 02:45:03,700
我们必须发出这个信号
4046
02:45:04,300 --> 02:45:05,530
那是因为
4047
02:45:06,000 --> 02:45:09,100
该功能目前只能捕获信号
4048
02:45:09,200 --> 02:45:12,130
但它不知道信号何时被触发
4049
02:45:12,470 --> 02:45:15,330
我们可以很容易地做到这一点,因为我们知道
4050
02:45:15,930 --> 02:45:19,070
当身体进入2d区域时
4051
02:45:19,400 --> 02:45:21,330
那么我们要触发这个信号
4052
02:45:21,900 --> 02:45:24,970
这意味着代替 print 语句
4053
02:45:25,100 --> 02:45:28,130
我想让玩家进入大门
4054
02:45:28,400 --> 02:45:30,800
然后发出这个信号
4055
02:45:30,930 --> 02:45:32,370
并且不要忘记调用它
4056
02:45:32,730 --> 02:45:35,070
现在如果我再次运行这一切
4057
02:45:35,530 --> 02:45:37,930
我们回到玩家已进入大门
4058
02:45:38,600 --> 02:45:41,900
这是在关卡内部运行的
4059
02:45:42,200 --> 02:45:44,130
那里有玩家已进入大门
4060
02:45:44,670 --> 02:45:47,900
现在所有这一切的逻辑可能有点令人困惑
4061
02:45:47,900 --> 02:45:50,200
让我们一一过一遍
4062
02:45:50,530 --> 02:45:53,870
我们从区域 2d 节点内部开始
4063
02:45:53,870 --> 02:45:55,900
这个有一个信号附加
4064
02:45:55,900 --> 02:45:59,070
如果触发此一个,则输入正文
4065
02:45:59,300 --> 02:46:01,130
我们里面有一些代码
4066
02:46:01,130 --> 02:46:02,970
父节点是门的
4067
02:46:03,400 --> 02:46:06,070
如果被触发,该函数就是这个
4068
02:46:06,130 --> 02:46:08,170
在区域 2d 身体进入
4069
02:46:08,300 --> 02:46:11,670
这是附加到该区域 2d 的信号
4070
02:46:12,130 --> 02:46:14,000
如果我们发出这个信号
4071
02:46:14,200 --> 02:46:17,600
我们正在发出我们自己的自定义信号
4072
02:46:18,500 --> 02:46:19,970
和这个自定义信号
4073
02:46:19,970 --> 02:46:22,800
我们正在捕捉关卡内部
4074
02:46:23,400 --> 02:46:26,600
现在从父节点发出
4075
02:46:26,600 --> 02:46:28,600
所以门和结果
4076
02:46:28,600 --> 02:46:30,800
将在函数内部捕获
4077
02:46:30,800 --> 02:46:32,500
在门上 玩家进入门
4078
02:46:32,970 --> 02:46:36,730
现在这是你绝对想要练习的事情
4079
02:46:36,900 --> 02:46:40,200
尽管在我们到达大门内部之前
4080
02:46:40,530 --> 02:46:42,870
我们不再需要身体了
4081
02:46:42,900 --> 02:46:44,130
因为我们假设身体
4082
02:46:44,130 --> 02:46:45,900
输入的将是玩家
4083
02:46:46,170 --> 02:46:47,530
但当我们在这里的时候
4084
02:46:47,870 --> 02:46:51,970
您可以添加一个或多个额外参数
4085
02:46:51,970 --> 02:46:54,070
也可以包含在您自己的自定义信号中
4086
02:46:54,470 --> 02:46:55,530
为此你所要做的就是
4087
02:46:55,970 --> 02:46:57,470
是加括号
4088
02:46:57,470 --> 02:46:59,330
然后是你想要添加的参数
4089
02:46:59,570 --> 02:47:02,370
例如,在这种情况下,这可能只是一个身体
4090
02:47:02,700 --> 02:47:05,300
然后当你发出信号时
4091
02:47:05,300 --> 02:47:07,730
你可以简单地将尸体传递到那里
4092
02:47:08,770 --> 02:47:12,130
然后当你在关卡内部有了这个之后
4093
02:47:12,330 --> 02:47:14,370
你需要一个参数来捕获这个body
4094
02:47:14,400 --> 02:47:15,900
我们也称它为身体吧
4095
02:47:16,270 --> 02:47:19,070
然后你可以打印正文
4096
02:47:19,800 --> 02:47:21,170
然后你就可以随时随地运送
4097
02:47:21,170 --> 02:47:22,200
让我们尝试一下
4098
02:47:22,570 --> 02:47:24,400
现在我们得到
4099
02:47:24,530 --> 02:47:25,970
玩家已进入大门
4100
02:47:25,970 --> 02:47:27,900
和玩家角色身体 2d
4101
02:47:27,930 --> 02:47:29,170
无论我们在那里有什么
4102
02:47:29,670 --> 02:47:31,800
我非常推荐你去玩玩
4103
02:47:31,800 --> 02:47:33,670
在你自己的时间里
4104
02:47:33,770 --> 02:47:36,870
了解自定义信号非常重要
4105
02:47:36,970 --> 02:47:39,000
因为它们可以让你创造场景
4106
02:47:39,470 --> 02:47:41,470
也发出信号
4107
02:47:41,670 --> 02:47:42,600
那样
4108
02:47:43,070 --> 02:47:46,730
您可以从场景内部获取信号
4109
02:47:46,730 --> 02:47:49,700
然后在多个场景中使用它
4110
02:47:49,930 --> 02:47:51,870
以及我希望你们做的练习
4111
02:47:51,970 --> 02:47:55,530
是让玩家发出自定义信号代码激光
4112
02:47:55,600 --> 02:47:57,770
当检测到激光输入时
4113
02:47:58,070 --> 02:47:59,870
然后在关卡内部
4114
02:47:59,870 --> 02:48:02,000
我希望你们能捕捉到这一切
4115
02:48:02,000 --> 02:48:04,000
并从水平仪打印激光
4116
02:48:04,170 --> 02:48:07,470
最后也用手榴弹完成所有这一切
4117
02:48:07,700 --> 02:48:09,970
你们中的大多数人现在正在尝试解决这个问题
4118
02:48:13,100 --> 02:48:14,770
回到编辑器中
4119
02:48:14,900 --> 02:48:16,870
我想看看我的播放器
4120
02:48:17,130 --> 02:48:19,670
我特别想看看脚本
4121
02:48:20,300 --> 02:48:21,200
首先
4122
02:48:21,300 --> 02:48:24,500
一直在顶部我想创建一个信号
4123
02:48:25,500 --> 02:48:27,330
信号将是
4124
02:48:27,370 --> 02:48:29,270
我们就称之为激光吧
4125
02:48:30,170 --> 02:48:32,900
现在我们不需要任何争论
4126
02:48:32,900 --> 02:48:35,200
但稍后我们将添加一些
4127
02:48:35,770 --> 02:48:36,330
不过现在
4128
02:48:36,330 --> 02:48:38,130
我只是想承认玩家有
4129
02:48:38,130 --> 02:48:39,530
发射激光
4130
02:48:39,770 --> 02:48:43,200
为此,让我稍微延长一下窗口
4131
02:48:44,400 --> 02:48:48,300
如果玩家点击主要操作并且
4132
02:48:48,570 --> 02:48:49,970
激光可以是真的吗
4133
02:48:50,130 --> 02:48:53,300
如果是这种情况,我知道玩家发射了激光
4134
02:48:53,570 --> 02:48:54,670
正因为如此
4135
02:48:54,770 --> 02:48:58,500
我想获取激光信号然后发射
4136
02:48:59,370 --> 02:49:00,970
这就是我们所需要的
4137
02:49:01,130 --> 02:49:03,400
所以现在我们可以回到原来的水平
4138
02:49:03,530 --> 02:49:07,570
单击播放器,我们现在有一个激光信号
4139
02:49:07,970 --> 02:49:09,500
我要双击它
4140
02:49:09,500 --> 02:49:11,600
并将其连接到级别节点
4141
02:49:12,100 --> 02:49:15,100
所以连接,现在我们开始播放器激光
4142
02:49:15,700 --> 02:49:18,270
我们目前还不能做太多事情
4143
02:49:18,330 --> 02:49:23,200
所以现在我只是从水平仪打印激光
4144
02:49:23,770 --> 02:49:24,900
现在我们有了
4145
02:49:25,000 --> 02:49:28,270
回到播放器内部我也可以摆脱
4146
02:49:28,570 --> 02:49:31,770
发射激光,因为我们不再需要它了
4147
02:49:33,070 --> 02:49:35,100
这就是我们这部分所需要的
4148
02:49:35,100 --> 02:49:36,400
所以让我们尝试一下这一切
4149
02:49:36,400 --> 02:49:39,200
如果我现在左键单击,我们会从水平仪中获得激光
4150
02:49:39,200 --> 02:49:40,770
所以这工作得很好
4151
02:49:40,800 --> 02:49:41,900
除此之外
4152
02:49:41,930 --> 02:49:44,600
另一个信号也工作得很好
4153
02:49:45,200 --> 02:49:49,070
接下来我们需要在播放器内部做的所有事情
4154
02:49:49,270 --> 02:49:51,100
我想创建另一个信号
4155
02:49:51,670 --> 02:49:53,970
这个将被称为手榴弹
4156
02:49:54,500 --> 02:49:56,130
我们正在触发这个
4157
02:49:56,670 --> 02:49:59,300
如果玩家按下辅助动作
4158
02:50:00,170 --> 02:50:04,270
在这里我想拿到手榴弹然后发射
4159
02:50:05,130 --> 02:50:08,070
现在我也可以摆脱 print 语句了
4160
02:50:08,770 --> 02:50:12,330
因为所有这些逻辑都应该在关卡内部
4161
02:50:13,400 --> 02:50:16,200
回到关卡场景中
4162
02:50:16,470 --> 02:50:18,700
我现在有另一个信号
4163
02:50:18,730 --> 02:50:20,570
我想要连接到关卡
4164
02:50:22,070 --> 02:50:24,670
这个将要打印
4165
02:50:25,470 --> 02:50:27,700
手榴弹从水平
4166
02:50:29,570 --> 02:50:31,270
所有这些我现在都可以运行
4167
02:50:31,500 --> 02:50:33,800
我可以左键单击我得到激光
4168
02:50:33,800 --> 02:50:35,900
我可以右键单击我得到手榴弹
4169
02:50:36,330 --> 02:50:37,600
每 2 秒
4170
02:50:37,670 --> 02:50:41,070
我可以四处走动,让玩家们想到
4171
02:50:41,570 --> 02:50:43,170
这就是我们所需要的
4172
02:50:44,070 --> 02:50:46,800
我们也因此取得了巨大的进步
4173
02:50:46,800 --> 02:50:50,000
连接不同场景的不同节点
4174
02:50:50,100 --> 02:50:52,170
这非常重要
4175
02:50:52,570 --> 02:50:56,570
现在看到的这个水平感觉明显干净
4176
02:50:56,730 --> 02:50:58,900
我们有一个节点作为门
4177
02:50:58,900 --> 02:51:00,800
以及一个玩家节点
4178
02:51:01,600 --> 02:51:04,400
早些时候我们这里有所有这些东西
4179
02:51:04,400 --> 02:51:06,270
关卡场景内部
4180
02:51:06,330 --> 02:51:08,570
如果你对数百个物体这样做
4181
02:51:08,570 --> 02:51:11,070
管理起来会非常困难
4182
02:51:11,700 --> 02:51:13,600
我想从事的下一个主要方面
4183
02:51:13,600 --> 02:51:16,200
就是在代码中创建自定义场景
4184
02:51:16,770 --> 02:51:19,870
这是另一个非常重要的方面
4185
02:51:19,870 --> 02:51:21,070
我们来谈谈为什么
4186
02:51:21,570 --> 02:51:25,500
到目前为止,我们总是在编辑器内创建场景
4187
02:51:25,670 --> 02:51:28,530
例如我们制作了玩家的门
4188
02:51:28,530 --> 02:51:30,270
我们做了很多类似的东西
4189
02:51:30,500 --> 02:51:32,270
但是有时
4190
02:51:32,370 --> 02:51:35,530
这在游戏中是不可能或不可取的
4191
02:51:35,900 --> 02:51:38,170
例如当我们使用激光时
4192
02:51:38,170 --> 02:51:40,200
我们将为此部分做一些事情
4193
02:51:40,530 --> 02:51:43,330
我们不能只创建一个场景然后添加它
4194
02:51:43,330 --> 02:51:45,730
因为我们必须动态地完成所有这些
4195
02:51:46,370 --> 02:51:47,500
意味着我们想要创造
4196
02:51:47,500 --> 02:51:49,900
每当玩家射击时就会发出激光
4197
02:51:50,530 --> 02:51:53,970
为此我们必须使用代码来创建一个实例
4198
02:51:53,970 --> 02:51:54,770
一个场景
4199
02:51:55,400 --> 02:51:57,370
我们来谈谈这是如何运作的
4200
02:51:58,100 --> 02:52:01,400
第一,我们必须首先创建一个场景
4201
02:52:01,870 --> 02:52:04,200
这我们仍然要手动完成
4202
02:52:04,370 --> 02:52:06,200
这意味着我们要把
4203
02:52:06,200 --> 02:52:07,400
一起几个笔记
4204
02:52:07,400 --> 02:52:09,370
将构成激光器
4205
02:52:09,370 --> 02:52:11,470
那将是一个场景
4206
02:52:12,130 --> 02:52:14,470
这部分我们已经做过多次了
4207
02:52:14,470 --> 02:52:16,330
现在应该不会太难
4208
02:52:16,870 --> 02:52:19,270
No.2 这是我们还没有做过的事情
4209
02:52:19,330 --> 02:52:21,670
我们必须创建场景的实例
4210
02:52:21,970 --> 02:52:23,570
你必须思考的方式
4211
02:52:23,670 --> 02:52:25,730
就是当我们创建一个场景的时候
4212
02:52:25,870 --> 02:52:28,330
我们基本上正在创建一个蓝图
4213
02:52:28,470 --> 02:52:30,470
它本身没有做任何事情
4214
02:52:30,600 --> 02:52:32,870
一旦我们创建了一个实例
4215
02:52:32,870 --> 02:52:34,470
这是一个非常重要的词
4216
02:52:34,600 --> 02:52:36,400
然后我们创建一个实际的节点
4217
02:52:36,400 --> 02:52:38,730
我们可以在另一个场景中使用
4218
02:52:39,130 --> 02:52:40,700
一旦我们有了这个实例
4219
02:52:40,700 --> 02:52:42,600
我们还需要再执行一步
4220
02:52:42,670 --> 02:52:44,530
那就是我们必须添加
4221
02:52:44,570 --> 02:52:47,730
注释树的注释的新实例
4222
02:52:48,730 --> 02:52:51,700
这很重要,因为在第 2 步
4223
02:52:51,700 --> 02:52:53,130
当我们有一个实例时
4224
02:52:53,330 --> 02:52:56,800
我们基本上只有一个可以使用的注释
4225
02:52:56,970 --> 02:52:59,700
但它不属于我们当前的场景
4226
02:52:59,700 --> 02:53:02,070
为此我们需要第三步
4227
02:53:02,100 --> 02:53:03,930
我们将其添加到笔记树中
4228
02:53:04,300 --> 02:53:06,000
只有这样我们才能真正看到
4229
02:53:06,000 --> 02:53:08,170
并在游戏中使用它
4230
02:53:08,900 --> 02:53:10,100
所以这样
4231
02:53:10,170 --> 02:53:12,770
我们有很多材料需要了解
4232
02:53:12,800 --> 02:53:15,000
让我们跳进古多看看
4233
02:53:15,730 --> 02:53:16,800
回到编辑器中
4234
02:53:16,800 --> 02:53:19,170
我想首先关上门
4235
02:53:19,300 --> 02:53:21,300
因为我们不再需要这部分了
4236
02:53:21,730 --> 02:53:24,370
接下来我想创建一个新场景
4237
02:53:24,600 --> 02:53:27,300
现在我必须弄清楚如何创建
4238
02:53:27,300 --> 02:53:29,300
激光的基本场景
4239
02:53:29,370 --> 02:53:31,200
现在最重要的部分
4240
02:53:31,200 --> 02:53:32,670
我们必须考虑一下
4241
02:53:32,670 --> 02:53:34,700
根音是什么
4242
02:53:34,970 --> 02:53:37,570
让我们谈谈如何解决这个问题
4243
02:53:38,200 --> 02:53:40,330
我们有 2d 区域静态体 2d
4244
02:53:40,400 --> 02:53:42,730
2d 刚体和 2d 角色体
4245
02:53:43,000 --> 02:53:45,330
现在当我们创造激光时
4246
02:53:45,530 --> 02:53:48,100
我们想明显地移动激光
4247
02:53:48,100 --> 02:53:50,470
所以我们必须选择其中之一
4248
02:53:50,470 --> 02:53:53,300
可以与某物碰撞并且可以移动
4249
02:53:53,600 --> 02:53:56,470
我要选择的是 2d 区域
4250
02:53:57,000 --> 02:53:59,270
这是一张我们可以完美移动的纸条
4251
02:53:59,270 --> 02:54:01,330
它还可以检测碰撞
4252
02:54:01,330 --> 02:54:02,970
这基本上就是我们所需要的
4253
02:54:03,470 --> 02:54:06,100
或者你也可以使用刚体 2d
4254
02:54:06,170 --> 02:54:08,300
甚至是 2d 角色身体
4255
02:54:08,700 --> 02:54:11,500
虽然你可能不想
4256
02:54:12,000 --> 02:54:13,300
角色身体 2d
4257
02:54:13,470 --> 02:54:15,370
可能会有点矫枉过正
4258
02:54:15,370 --> 02:54:18,070
因为激光最终非常简单
4259
02:54:18,270 --> 02:54:22,370
2d 刚体也不是那么必要
4260
02:54:22,500 --> 02:54:25,000
因为激光以恒定速度移动
4261
02:54:25,000 --> 02:54:25,900
我们真的不需要
4262
02:54:25,900 --> 02:54:28,100
那里有任何先进的物理学
4263
02:54:28,470 --> 02:54:30,870
尽管稍后当我们使用手榴弹时
4264
02:54:30,870 --> 02:54:33,200
我们将使用 2d 刚体
4265
02:54:33,570 --> 02:54:35,300
虽然现在我们不需要它
4266
02:54:35,730 --> 02:54:37,570
你想要思考的方式是你
4267
02:54:37,570 --> 02:54:38,500
一直想用
4268
02:54:38,500 --> 02:54:39,570
最简单的注释
4269
02:54:39,570 --> 02:54:41,100
你可能会使用
4270
02:54:41,100 --> 02:54:43,500
在这种情况下,这将是区域 2d
4271
02:54:44,470 --> 02:54:45,470
我想创建
4272
02:54:45,670 --> 02:54:48,670
另一个注释将是一个 2d 区域
4273
02:54:49,000 --> 02:54:53,000
我想立即将此区域 2d 重命名为 Laser
4274
02:54:53,400 --> 02:54:55,400
现在我们必须像往常一样
4275
02:54:55,400 --> 02:54:58,730
我们想添加一个精灵,我想添加一个
4276
02:54:59,600 --> 02:55:01,930
碰撞形状 2d
4277
02:55:02,370 --> 02:55:03,300
或精灵
4278
02:55:03,300 --> 02:55:04,600
我们需要一个纹理
4279
02:55:04,600 --> 02:55:07,700
我们在图形里面找到了它
4280
02:55:07,730 --> 02:55:09,870
我们有射弹
4281
02:55:11,000 --> 02:55:13,070
我们需要的文件名为 blue
4282
02:55:13,970 --> 02:55:15,770
我只需要把它拖到那里
4283
02:55:15,770 --> 02:55:19,400
然后我们得到激光图像
4284
02:55:19,900 --> 02:55:22,500
接下来我们必须添加碰撞形状
4285
02:55:22,500 --> 02:55:23,300
为了那个原因
4286
02:55:23,530 --> 02:55:26,170
我要使用一些我们还没有使用过的东西
4287
02:55:26,170 --> 02:55:27,600
这是一个胶囊
4288
02:55:29,130 --> 02:55:31,570
我想延长一点
4289
02:55:31,570 --> 02:55:32,900
基本上这个是什么
4290
02:55:32,900 --> 02:55:35,330
是一个带圆角的矩形
4291
02:55:35,870 --> 02:55:37,200
也再一次
4292
02:55:37,270 --> 02:55:39,730
我想保持这个碰撞形状的中心
4293
02:55:39,730 --> 02:55:40,800
围绕原点
4294
02:55:40,800 --> 02:55:42,670
所以位置0和0
4295
02:55:43,130 --> 02:55:45,470
所以我要移动图像
4296
02:55:45,470 --> 02:55:48,270
与碰撞形状对齐
4297
02:55:49,530 --> 02:55:52,670
我认为这看起来基本上没问题
4298
02:55:53,330 --> 02:55:55,330
你可以经常尝试这个
4299
02:55:55,700 --> 02:55:56,500
和
4300
02:55:56,900 --> 02:55:59,200
如果你想要一款运行良好的游戏
4301
02:55:59,530 --> 02:56:02,400
这些小细节才是一款好游戏的真正要素
4302
02:56:02,870 --> 02:56:04,730
所以我认为这是一个很好的开始
4303
02:56:04,730 --> 02:56:06,100
这看起来还不错
4304
02:56:06,570 --> 02:56:09,930
这意味着我可以在场景下保存整个场景
4305
02:56:09,930 --> 02:56:12,470
我想在那里创建一个新文件夹
4306
02:56:12,570 --> 02:56:15,370
我们称之为射弹
4307
02:56:16,070 --> 02:56:17,500
我可以把它保存在那里
4308
02:56:17,500 --> 02:56:19,730
现在我们有了激光
4309
02:56:20,700 --> 02:56:22,070
这将涵盖第一部分
4310
02:56:22,070 --> 02:56:24,770
现在我们已经创建了一个场景
4311
02:56:25,800 --> 02:56:28,670
接下来我们必须创建这个场景的一个实例
4312
02:56:28,670 --> 02:56:31,000
在我们想要使用它的新场景中
4313
02:56:31,900 --> 02:56:35,470
这意味着我想使用这个激光
4314
02:56:35,470 --> 02:56:37,270
关卡内部
4315
02:56:37,330 --> 02:56:40,530
具体来说,我想创建一个激光实例
4316
02:56:40,670 --> 02:56:44,570
当我们触发 onplayerlaser 事件时
4317
02:56:46,100 --> 02:56:48,400
为此我们必须经过两个步骤
4318
02:56:48,500 --> 02:56:49,300
首先
4319
02:56:49,330 --> 02:56:52,870
我们必须预加载我们刚刚创建的场景
4320
02:56:53,200 --> 02:56:54,930
这一直发生在顶部
4321
02:56:55,530 --> 02:56:57,300
我想创建一个新变量
4322
02:56:57,300 --> 02:57:00,530
我们称之为 var 激光场景
4323
02:57:00,700 --> 02:57:05,530
要预加载场景,我们需要函数 preload
4324
02:57:05,900 --> 02:57:08,300
这个预加载想要有一个场景
4325
02:57:08,570 --> 02:57:10,900
因为我们里面确实有很多东西
4326
02:57:10,900 --> 02:57:13,300
您通常只想输入场景的名称
4327
02:57:13,500 --> 02:57:14,370
然后古道是
4328
02:57:14,370 --> 02:57:16,600
非常聪明,并为您提供场景
4329
02:57:17,330 --> 02:57:20,500
确保结尾是 TSCN
4330
02:57:20,500 --> 02:57:21,930
这是一个场景
4331
02:57:22,070 --> 02:57:25,470
如果里面有 PNG 或 TSCN 以外的任何内容
4332
02:57:25,470 --> 02:57:27,000
可能出了问题
4333
02:57:27,770 --> 02:57:29,870
你可以更积极地对待它
4334
02:57:29,870 --> 02:57:31,900
并强制使用某种数据类型
4335
02:57:31,900 --> 02:57:33,530
我们在这里寻找的数据时间
4336
02:57:33,530 --> 02:57:35,770
称为拥挤场景
4337
02:57:37,170 --> 02:57:41,900
现在我们已经准备好了可以使用的场景
4338
02:57:42,330 --> 02:57:43,970
我们下一步要做的是
4339
02:57:43,970 --> 02:57:46,270
我们必须创建这个场景的一个实例
4340
02:57:46,470 --> 02:57:49,500
这将实际场景变成一个节点
4341
02:57:49,500 --> 02:57:51,770
我们可以在当前场景中使用
4342
02:57:52,470 --> 02:57:54,000
这实际上很容易做到
4343
02:57:54,000 --> 02:57:57,530
我想在播放器激光上完成所有这些
4344
02:57:58,300 --> 02:58:01,170
我在这里想做的就是创建一个新变量
4345
02:58:01,170 --> 02:58:03,200
我称之为激光
4346
02:58:03,870 --> 02:58:06,700
这台激光器就是一个例子
4347
02:58:06,700 --> 02:58:08,900
这意味着我想要获得激光场景
4348
02:58:08,900 --> 02:58:10,800
我们在这里创建的
4349
02:58:11,170 --> 02:58:14,370
然后运行实例化方法
4350
02:58:15,070 --> 02:58:18,470
这样我们就有了一个场景实例
4351
02:58:19,000 --> 02:58:22,270
这涵盖了我们要求的第二部分
4352
02:58:22,370 --> 02:58:24,870
剩下要做的就是添加这个场景
4353
02:58:24,870 --> 02:58:25,900
到注释3
4354
02:58:26,400 --> 02:58:28,770
我们可以用一个简单的函数来做到这一点
4355
02:58:28,800 --> 02:58:30,930
这就是所谓的添加孩子
4356
02:58:31,730 --> 02:58:33,500
在这种情况下我们要添加的孩子
4357
02:58:33,500 --> 02:58:34,300
将是
4358
02:58:34,300 --> 02:58:38,130
有了激光,我们就可以出发了
4359
02:58:38,670 --> 02:58:41,000
让我运行游戏,看看会发生什么
4360
02:58:41,170 --> 02:58:43,670
如果我现在点击按钮
4361
02:58:43,870 --> 02:58:46,200
你可以看到我们有激光
4362
02:58:46,500 --> 02:58:48,970
它在那里的原因是因为
4363
02:58:48,970 --> 02:58:51,270
位于激光器内部
4364
02:58:53,000 --> 02:58:55,970
我们总是在左上角
4365
02:58:55,970 --> 02:58:57,870
我们不会更新这个职位
4366
02:58:57,970 --> 02:58:58,870
因为那个
4367
02:58:58,870 --> 02:59:00,930
我们总是在这一点上有激光
4368
02:59:00,930 --> 02:59:02,130
它没有动
4369
02:59:02,130 --> 02:59:03,600
所以我们必须做一些更新
4370
02:59:03,600 --> 02:59:05,470
但这肯定是一个好的开始
4371
02:59:06,300 --> 02:59:07,370
最重要的是
4372
02:59:07,400 --> 02:59:09,870
Godo 的另一个真正强大的部分是什么
4373
02:59:09,870 --> 02:59:12,130
如果我回到标准视图
4374
02:59:12,530 --> 02:59:14,930
如果游戏像现在一样运行
4375
02:59:15,600 --> 02:59:18,170
所以我仍然可以完美地奔跑
4376
02:59:18,800 --> 02:59:21,300
然后你就可以返回编辑器了
4377
02:59:21,300 --> 02:59:23,900
你实际上可以看左边
4378
02:59:23,970 --> 02:59:25,500
除了本地还有
4379
02:59:25,500 --> 02:59:26,730
您可以在其中看到所有节点
4380
02:59:26,730 --> 02:59:28,000
每个模式选项卡
4381
02:59:28,270 --> 02:59:31,400
仅当游戏运行时才可见
4382
02:59:31,500 --> 02:59:33,170
这会实时显示
4383
02:59:33,170 --> 02:59:34,930
游戏中发生了什么
4384
02:59:35,270 --> 02:59:37,170
所以现在我们已经root了
4385
02:59:37,200 --> 02:59:39,800
这是一个技术部分,但我们有水平
4386
02:59:40,070 --> 02:59:41,770
这是这个关卡场景
4387
02:59:42,370 --> 02:59:43,270
里面有
4388
02:59:43,570 --> 02:59:45,670
我们有大门,我们有球员
4389
02:59:45,730 --> 02:59:48,200
这是我们自己添加的两个注释
4390
02:59:48,500 --> 02:59:51,300
但之后我们有四次激光
4391
02:59:51,870 --> 02:59:54,470
如果我回到游戏并继续点击
4392
02:59:54,730 --> 02:59:56,900
我们添加越来越多的激光器
4393
02:59:58,930 --> 03:00:00,770
这样我们就可以实时得知
4394
03:00:00,770 --> 03:00:03,000
这向您展示了游戏中发生的情况
4395
03:00:03,270 --> 03:00:06,470
这对于揭穿你的游戏非常有帮助
4396
03:00:06,800 --> 03:00:08,130
当你点击它们时
4397
03:00:08,130 --> 03:00:09,530
你可以看看检查员
4398
03:00:09,530 --> 03:00:12,500
并获得大量有关正在发生的事情的信息
4399
03:00:12,570 --> 03:00:15,600
所有这些都是实时更新,非常有用
4400
03:00:16,370 --> 03:00:18,270
虽然就我而言我想关闭游戏
4401
03:00:18,270 --> 03:00:19,700
因为我们现在不需要它
4402
03:00:20,200 --> 03:00:22,770
现在我想做两件事
4403
03:00:22,770 --> 03:00:24,470
让我添加评论
4404
03:00:24,930 --> 03:00:25,670
第一
4405
03:00:25,670 --> 03:00:28,870
最重要的是我们必须更新
4406
03:00:28,900 --> 03:00:31,200
激光位置
4407
03:00:31,900 --> 03:00:34,070
现在激光出现在左上角并且
4408
03:00:34,070 --> 03:00:35,200
好吧,这是一个问题
4409
03:00:35,970 --> 03:00:40,700
第二,我们必须移动激光
4410
03:00:41,300 --> 03:00:43,170
那部分也应该相当明显
4411
03:00:43,170 --> 03:00:47,330
我确实想添加一个小一点的 3 号
4412
03:00:47,800 --> 03:00:52,330
我想添加激光实例
4413
03:00:52,800 --> 03:00:55,330
给 d 的注释
4414
03:00:56,130 --> 03:00:56,800
现在
4415
03:00:56,800 --> 03:00:59,600
我们总是将激光添加到关卡场景本身
4416
03:00:59,600 --> 03:01:01,300
这往往会变得有点混乱
4417
03:01:01,300 --> 03:01:03,800
因为我们里面只有一大堆笔记
4418
03:01:04,170 --> 03:01:07,130
相反,如果我们添加的话会更干净
4419
03:01:07,130 --> 03:01:08,570
另一个注意事项
4420
03:01:09,300 --> 03:01:12,500
我们可以将其重命名为“projectiles”
4421
03:01:12,970 --> 03:01:15,570
我想将激光器添加到该节点
4422
03:01:15,570 --> 03:01:18,930
这样整个场景本身就变得更加干净
4423
03:01:19,000 --> 03:01:21,300
但我们稍后会更详细地研究这个问题
4424
03:01:22,370 --> 03:01:25,500
首先,我们要更新激光位置
4425
03:01:25,900 --> 03:01:26,700
然后
4426
03:01:26,730 --> 03:01:29,900
从最基本的意义上来说实际上很容易做到
4427
03:01:30,470 --> 03:01:35,200
因为这个激光现在也只是一类
4428
03:01:35,600 --> 03:01:38,330
我们知道如何更新班级的位置
4429
03:01:38,330 --> 03:01:40,270
我们所要做的就是获得激光
4430
03:01:40,330 --> 03:01:42,570
然后得到位置
4431
03:01:43,070 --> 03:01:46,470
例如,这个位置可以是玩家位置
4432
03:01:46,470 --> 03:01:49,570
这意味着我可以简单地将播放器节点拖到那里
4433
03:01:49,930 --> 03:01:52,400
然后获取玩家的位置
4434
03:01:53,100 --> 03:01:54,270
现在如果我运行游戏
4435
03:01:55,130 --> 03:01:57,300
我可以点击和激光
4436
03:01:57,300 --> 03:02:00,100
将位于我的球员的位置上
4437
03:02:00,300 --> 03:02:04,170
这已经是一个相当不错的改进了
4438
03:02:04,270 --> 03:02:05,570
但还不够完美
4439
03:02:07,500 --> 03:02:09,470
所以我想做的
4440
03:02:09,470 --> 03:02:11,470
让我说明一个问题
4441
03:02:12,000 --> 03:02:13,330
我们正在产生激光
4442
03:02:13,330 --> 03:02:14,970
围绕播放器的中心
4443
03:02:14,970 --> 03:02:16,800
所以这个红十字会
4444
03:02:17,530 --> 03:02:19,370
这不现实
4445
03:02:19,370 --> 03:02:21,400
理想情况下我们想要产生激光
4446
03:02:21,470 --> 03:02:25,400
距离枪顶部位置的某处
4447
03:02:25,700 --> 03:02:28,730
为此我们实际上可以了解另一个注释
4448
03:02:28,730 --> 03:02:30,670
以及一些随机性
4449
03:02:30,670 --> 03:02:33,070
这是Google中两个非常重要的概念
4450
03:02:33,330 --> 03:02:34,900
所以我想从这里开始
4451
03:02:34,930 --> 03:02:38,700
我想获得几个随机位置
4452
03:02:38,870 --> 03:02:40,400
枪的顶部
4453
03:02:40,970 --> 03:02:41,600
这周围
4454
03:02:41,600 --> 03:02:44,730
我想要分配三个随机点
4455
03:02:45,370 --> 03:02:46,300
像这样的东西
4456
03:02:47,570 --> 03:02:50,870
为此我们需要一个 2d 标记
4457
03:02:51,400 --> 03:02:53,330
虽然我想组织这个,因为
4458
03:02:53,330 --> 03:02:55,930
我们的玩家场景开始变得有点混乱
4459
03:02:56,300 --> 03:02:59,570
所以我要在播放器内部添加一个 2D 注释
4460
03:02:59,930 --> 03:03:02,170
这个不会做太多事
4461
03:03:02,170 --> 03:03:04,370
它只是用来保存其他注释
4462
03:03:04,900 --> 03:03:09,800
我想将其称为激光起始位置
4463
03:03:10,300 --> 03:03:12,500
什么实际上会变得重要
4464
03:03:12,530 --> 03:03:14,270
我想添加另一条注释
4465
03:03:14,270 --> 03:03:16,970
这个注释被称为标记 2d
4466
03:03:18,470 --> 03:03:19,530
这个标记 2d
4467
03:03:19,730 --> 03:03:21,770
如果我将鼠标悬停在中心上
4468
03:03:21,800 --> 03:03:22,970
让我实际展示一下我的鼠标
4469
03:03:23,400 --> 03:03:26,000
如果我越过了中心,我们就会有一个 2d 标记
4470
03:03:26,000 --> 03:03:27,470
我可以移动这个
4471
03:03:27,930 --> 03:03:31,470
标记 2d 实际上只是一个位置
4472
03:03:31,470 --> 03:03:33,800
你不会用它来做其他事
4473
03:03:33,800 --> 03:03:36,770
如果你看右边,确实没有太多
4474
03:03:37,370 --> 03:03:39,700
所以让我把它大致放在中间
4475
03:03:39,700 --> 03:03:41,000
看起来差不多
4476
03:03:41,600 --> 03:03:43,700
然后我想复制这个节点
4477
03:03:43,700 --> 03:03:46,170
因此,选择节点后,我单击 Ctrl d
4478
03:03:46,170 --> 03:03:48,130
现在我们有一个市场 2d2
4479
03:03:48,130 --> 03:03:50,400
我搬到这里的某个地方
4480
03:03:50,800 --> 03:03:53,730
我可以再次执行相同的操作,然后移动
4481
03:03:53,800 --> 03:03:55,530
最终市场在这里
4482
03:03:57,530 --> 03:03:58,970
我得到了
4483
03:03:59,070 --> 03:04:00,400
三个不同点
4484
03:04:00,400 --> 03:04:01,970
那些应该是
4485
03:04:01,970 --> 03:04:03,800
我的激光起始位置
4486
03:04:06,730 --> 03:04:09,270
接下来在外套里面
4487
03:04:09,670 --> 03:04:10,470
首先
4488
03:04:10,570 --> 03:04:13,670
当玩家点击主要动作时
4489
03:04:14,070 --> 03:04:16,930
必须随机让我添加评论
4490
03:04:17,130 --> 03:04:23,070
我想随机选择一个标记来标记激光
4491
03:04:23,330 --> 03:04:24,130
开始
4492
03:04:24,330 --> 03:04:28,100
这意味着我想选择这三个音符之一
4493
03:04:28,100 --> 03:04:29,300
这将是
4494
03:04:29,300 --> 03:04:31,330
激光的实际起始位置
4495
03:04:31,970 --> 03:04:36,400
2号这将位于emit内部
4496
03:04:36,870 --> 03:04:38,670
我想发出
4497
03:04:39,070 --> 03:04:41,470
我们选择的位置
4498
03:04:41,570 --> 03:04:43,900
当我们发射激光信号时
4499
03:04:43,970 --> 03:04:46,270
我们还想发出位置
4500
03:04:46,970 --> 03:04:48,930
所以我们可以做两件事
4501
03:04:49,070 --> 03:04:52,300
让我们从随机选择一个标记开始
4502
03:04:52,870 --> 03:04:54,270
首先
4503
03:04:54,270 --> 03:04:57,670
我想获取列表中的所有标记
4504
03:04:57,670 --> 03:04:59,530
这将使我们的生活变得更加轻松
4505
03:04:59,930 --> 03:05:01,970
我将把它安装在一个新变量中
4506
03:05:02,200 --> 03:05:05,330
我们称之为激光刻印机
4507
03:05:05,470 --> 03:05:06,670
获取激光标记
4508
03:05:06,670 --> 03:05:10,200
首先我想获得激光起始位置
4509
03:05:10,530 --> 03:05:13,270
现在这只是一个 note 2d
4510
03:05:13,500 --> 03:05:16,730
虽然这个 note 2d 有孩子
4511
03:05:16,900 --> 03:05:19,700
我们可以用 get 方法得到这些孩子
4512
03:05:19,930 --> 03:05:21,330
孩子们
4513
03:05:22,000 --> 03:05:22,870
一旦我们有了那个
4514
03:05:22,870 --> 03:05:25,370
我可以简单地打印激光标记
4515
03:05:25,370 --> 03:05:26,530
让我们看看我们得到了什么
4516
03:05:26,570 --> 03:05:29,530
如果我现在运行代码并单击
4517
03:05:29,730 --> 03:05:33,870
我们在输出中得到一个列表
4518
03:05:34,300 --> 03:05:36,670
有了 3 个标记,我们就有了 2d 标记
4519
03:05:36,900 --> 03:05:39,130
另一个标记 2d 和最终标记 2d
4520
03:05:39,530 --> 03:05:41,730
我也想将其存储在变量中
4521
03:05:41,770 --> 03:05:45,200
我们称之为 var selected Laser
4522
03:05:45,370 --> 03:05:47,500
这应该是小写的
4523
03:05:48,000 --> 03:05:50,270
从列表中获取随机项目
4524
03:05:50,270 --> 03:05:52,500
我们首先需要列表本身
4525
03:05:52,500 --> 03:05:53,670
所以激光打标机
4526
03:05:53,670 --> 03:05:55,900
我应该说这是一个数组而不是列表
4527
03:05:55,900 --> 03:05:57,770
但差别很小
4528
03:05:58,370 --> 03:06:00,900
我们想使用索引
4529
03:06:01,270 --> 03:06:03,100
例如我们可以使用索引 0
4530
03:06:03,100 --> 03:06:05,530
这将为我们提供第一项或索引 1
4531
03:06:05,530 --> 03:06:07,170
这会给我们第二个项目
4532
03:06:07,570 --> 03:06:10,100
但我们想要一个随机项目
4533
03:06:10,530 --> 03:06:14,100
为此,我们需要 Goodo 中的随机数
4534
03:06:14,170 --> 03:06:17,130
这总是有点奇怪
4535
03:06:17,130 --> 03:06:19,730
基本上你要做的就是使用
4536
03:06:20,170 --> 03:06:21,800
函数兰德 I
4537
03:06:22,270 --> 03:06:24,100
那么我们需要模运算符
4538
03:06:24,100 --> 03:06:26,770
所以百分号看起来像这样
4539
03:06:27,270 --> 03:06:29,870
然后我们需要最大的数字
4540
03:06:30,000 --> 03:06:33,870
在我们的例子中,这将是激光标记点
4541
03:06:33,930 --> 03:06:36,300
这就是尺寸
4542
03:06:36,800 --> 03:06:38,770
只是为了测试这是否有效
4543
03:06:38,970 --> 03:06:41,970
让我打印选定的激光
4544
03:06:42,570 --> 03:06:43,970
如果我现在再次运行游戏
4545
03:06:44,170 --> 03:06:46,900
我可以点击,我总是得到
4546
03:06:48,670 --> 03:06:50,270
某种标记
4547
03:06:50,300 --> 03:06:51,570
有一定的随机性
4548
03:06:51,570 --> 03:06:53,800
虽然我们没有太多笔记
4549
03:06:53,800 --> 03:06:55,300
会有点难看
4550
03:06:55,300 --> 03:06:57,930
但肯定可以看出我们得到了随机标记
4551
03:06:58,570 --> 03:07:01,270
还有其他方法来创造随机性
4552
03:07:01,270 --> 03:07:03,330
但这是最常见的之一
4553
03:07:03,330 --> 03:07:04,600
你将会看到
4554
03:07:05,000 --> 03:07:07,100
你想要租我的功能
4555
03:07:07,330 --> 03:07:09,170
然后是百分号
4556
03:07:09,200 --> 03:07:11,800
然后是最大的数字
4557
03:07:11,870 --> 03:07:13,970
你想要的随机性
4558
03:07:14,070 --> 03:07:17,470
在我们的例子中,这里的数字是 3
4559
03:07:17,700 --> 03:07:19,970
因为他们的列表中有三项
4560
03:07:20,700 --> 03:07:23,530
这会给我们一个从 0 开始的数字
4561
03:07:23,730 --> 03:07:27,070
最多 3 个,但不包括 3 个
4562
03:07:27,470 --> 03:07:31,170
我们可能得到的数字是 01 和 2
4563
03:07:31,400 --> 03:07:33,470
以及我们随后用于索引的那些
4564
03:07:33,470 --> 03:07:34,930
在激光刻印机上
4565
03:07:35,570 --> 03:07:38,470
这样我就可以摆脱 print 语句
4566
03:07:38,730 --> 03:07:41,070
以及评论的
4567
03:07:41,200 --> 03:07:43,970
接下来我想发出位置
4568
03:07:43,970 --> 03:07:46,770
我们从这个选定的激光位置得到的
4569
03:07:47,300 --> 03:07:49,730
我们已经做过类似的事情
4570
03:07:49,730 --> 03:07:51,730
所以我想一路走上巅峰
4571
03:07:51,930 --> 03:07:53,600
我们有激光信号
4572
03:07:54,070 --> 03:07:54,930
这个信号
4573
03:07:55,600 --> 03:07:57,670
应该包含一个参数
4574
03:07:58,300 --> 03:08:00,100
这将是这个位置
4575
03:08:00,570 --> 03:08:02,070
现在我们有了
4576
03:08:02,500 --> 03:08:04,000
当我发射激光时
4577
03:08:04,270 --> 03:08:09,200
我还想作为一个论点包括选定的激光
4578
03:08:09,500 --> 03:08:12,270
然后这个节点的位置
4579
03:08:12,530 --> 03:08:14,170
这实际上就是我们所需要的
4580
03:08:14,170 --> 03:08:16,000
现在我们正在发出一个立场
4581
03:08:16,000 --> 03:08:19,200
我们可以在关卡内部捕获这个位置
4582
03:08:19,500 --> 03:08:20,400
因为现在
4583
03:08:20,700 --> 03:08:24,170
在比赛中,激光将包含一个参数
4584
03:08:24,370 --> 03:08:26,330
我们可以在参数中捕获它
4585
03:08:26,370 --> 03:08:28,130
这将是这个位置
4586
03:08:28,600 --> 03:08:32,470
我们现在想用这个位置来设置
4587
03:08:32,870 --> 03:08:34,200
作为激光位置
4588
03:08:35,770 --> 03:08:37,730
现在让我们尝试一下这一切
4589
03:08:39,200 --> 03:08:42,330
如果我点击什么也不会发生
4590
03:08:43,600 --> 03:08:46,900
但是如果我回到谷歌
4591
03:08:46,970 --> 03:08:49,530
并返回正常视图和远程
4592
03:08:49,570 --> 03:08:51,870
你可以看到我们有激光
4593
03:08:51,870 --> 03:08:53,670
如果我继续点击
4594
03:08:54,500 --> 03:08:57,800
我们还可以看到我们正在产生更多的激光,所以
4595
03:08:58,900 --> 03:09:01,170
工具提示现在有点烦人
4596
03:09:01,170 --> 03:09:03,130
但如果你看一下滚动条
4597
03:09:03,470 --> 03:09:05,270
我们肯定会制造更多的激光器
4598
03:09:05,570 --> 03:09:07,400
所以这是有效的
4599
03:09:08,000 --> 03:09:10,700
基本上是我们必须做出的一个改变
4600
03:09:10,970 --> 03:09:13,670
我们不看所选激光器的位置
4601
03:09:13,670 --> 03:09:17,530
相反,我们想看看全球地位
4602
03:09:18,270 --> 03:09:19,700
现在如果我运行所有这些
4603
03:09:21,170 --> 03:09:23,100
我们可以看到激光
4604
03:09:24,100 --> 03:09:26,800
这个工作得很好
4605
03:09:28,000 --> 03:09:29,330
这就引出了一个问题
4606
03:09:29,500 --> 03:09:31,330
什么是全球地位
4607
03:09:31,330 --> 03:09:34,070
这与正常位置有何不同
4608
03:09:34,200 --> 03:09:35,170
让我们来谈谈它
4609
03:09:35,970 --> 03:09:39,500
到目前为止我们总是使用本地位置
4610
03:09:39,530 --> 03:09:43,500
并且这个位置总是相对于父级
4611
03:09:44,300 --> 03:09:47,330
我们基本上是在测量我们离我们有多远
4612
03:09:47,330 --> 03:09:49,500
来自父级的中心
4613
03:09:49,930 --> 03:09:51,900
然而全球地位
4614
03:09:51,970 --> 03:09:53,270
是一个精确的
4615
03:09:53,270 --> 03:09:56,870
独立于任何父级的像素坐标
4616
03:09:57,200 --> 03:09:58,730
你想要的思考方式
4617
03:09:58,800 --> 03:10:01,600
想象一下你现在坐在你的房子里
4618
03:10:01,770 --> 03:10:02,370
你做
4619
03:10:02,370 --> 03:10:05,330
与房屋中心有一定的相对位置
4620
03:10:05,400 --> 03:10:07,470
这将是您当地的位置
4621
03:10:08,130 --> 03:10:09,270
但话虽这么说
4622
03:10:09,330 --> 03:10:10,670
你还有
4623
03:10:10,670 --> 03:10:13,800
即使在你的家里也有特定的 GPS 位置
4624
03:10:14,130 --> 03:10:15,100
和这个位置
4625
03:10:15,100 --> 03:10:17,700
不关心你房子的位置
4626
03:10:17,800 --> 03:10:19,770
这将是您的全球定位
4627
03:10:20,370 --> 03:10:22,400
对古多来说更具体一些
4628
03:10:22,870 --> 03:10:24,700
想象你添加一个注释 2d
4629
03:10:24,700 --> 03:10:28,130
偏移量为 x 100 和 y 200
4630
03:10:28,330 --> 03:10:31,670
然后你给这张纸条一个处于相同位置的孩子
4631
03:10:32,930 --> 03:10:36,800
子注释的本地位置 X 为 0
4632
03:10:36,800 --> 03:10:38,670
y 也为 0
4633
03:10:38,900 --> 03:10:41,730
那是因为我们没有把它从父级移开
4634
03:10:42,070 --> 03:10:45,970
但它的全球排名确实为 100 和 200
4635
03:10:46,300 --> 03:10:48,930
因为那是实际的像素位置
4636
03:10:49,700 --> 03:10:50,130
理解
4637
03:10:50,130 --> 03:10:53,070
本地和全局位置可能有点棘手
4638
03:10:53,070 --> 03:10:54,400
尤其是在开始的时候
4639
03:10:55,100 --> 03:10:56,370
我想现在
4640
03:10:56,370 --> 03:10:56,770
只是
4641
03:10:56,770 --> 03:10:59,600
一般来说,请记住可能存在差异
4642
03:10:59,600 --> 03:11:01,570
并尝试两者
4643
03:11:01,670 --> 03:11:04,100
最终这应该变得相当简单
4644
03:11:04,730 --> 03:11:07,530
这样我们就可以回到古多了
4645
03:11:07,530 --> 03:11:09,670
因为现在我们有了激光
4646
03:11:09,770 --> 03:11:12,100
这是第一部分
4647
03:11:12,300 --> 03:11:14,200
我们必须更新激光位置
4648
03:11:14,200 --> 03:11:15,800
这样我就可以摆脱它
4649
03:11:16,200 --> 03:11:18,600
接下来我们必须移动激光
4650
03:11:19,100 --> 03:11:22,000
为此我想回到激光
4651
03:11:22,330 --> 03:11:25,330
现在激光需要一个脚本
4652
03:11:25,670 --> 03:11:27,930
所以我点击附加一个新脚本
4653
03:11:28,270 --> 03:11:30,730
对于模板我想使用 MT
4654
03:11:30,900 --> 03:11:32,770
对于文件夹
4655
03:11:33,000 --> 03:11:36,130
我们仍然处于弹丸状态,所以我对此感到满意
4656
03:11:36,170 --> 03:11:39,000
我可以单击“创建”,现在我们有了一个脚本
4657
03:11:40,070 --> 03:11:40,870
首先
4658
03:11:40,870 --> 03:11:43,500
我想定义某种移动速度
4659
03:11:43,500 --> 03:11:45,100
我们就称之为速度吧
4660
03:11:45,600 --> 03:11:47,670
这将是一个整数
4661
03:11:47,730 --> 03:11:52,600
对于这里的数字,我们暂时使用 1000
4662
03:11:53,670 --> 03:11:54,570
一旦我们有了那个
4663
03:11:54,730 --> 03:11:58,100
我们需要一个流程函数
4664
03:11:58,730 --> 03:11:59,930
我们想要在那里做的一切
4665
03:11:59,930 --> 03:12:01,800
就是更新激光的位置
4666
03:12:01,800 --> 03:12:04,900
所以我想改变立场和我想做的一切
4667
03:12:05,270 --> 03:12:06,070
是
4668
03:12:07,130 --> 03:12:11,000
我想在这个方向上有某种方向
4669
03:12:11,000 --> 03:12:13,500
我想以这个速度相乘
4670
03:12:13,570 --> 03:12:15,170
再次不要忘记
4671
03:12:15,170 --> 03:12:17,700
我们还想将所有这些与 Delta 相乘
4672
03:12:18,570 --> 03:12:21,470
现在方向不存在
4673
03:12:21,500 --> 03:12:22,200
以及后来
4674
03:12:22,200 --> 03:12:24,600
我们想要知道玩家正在看的方向
4675
03:12:25,070 --> 03:12:25,870
不过现在
4676
03:12:25,970 --> 03:12:29,270
我想要 VAR 指导
4677
03:12:29,670 --> 03:12:32,100
这将是一个向量 2
4678
03:12:32,470 --> 03:12:35,570
实际变量就是向量 2
4679
03:12:36,300 --> 03:12:39,500
玩家始终向上看的那一刻
4680
03:12:39,500 --> 03:12:41,400
所以这是我们唯一需要的向量
4681
03:12:41,530 --> 03:12:43,100
我现在可以运行这一切
4682
03:12:43,530 --> 03:12:47,870
发射激光,我们得到移动的激光
4683
03:12:47,870 --> 03:12:49,370
这看起来真的很好
4684
03:12:51,300 --> 03:12:52,170
在此刻
4685
03:12:52,170 --> 03:12:53,970
你可能想尝试一下
4686
03:12:53,970 --> 03:12:55,930
随着激光的速度
4687
03:12:55,930 --> 03:12:58,500
好门有一个非常好的特点
4688
03:12:58,800 --> 03:13:00,570
当你创建一个变量时
4689
03:13:00,570 --> 03:13:02,270
在脚本的开头
4690
03:13:02,570 --> 03:13:06,130
你可以做的就是添加关键字 xport
4691
03:13:07,070 --> 03:13:08,700
这应该结合起来
4692
03:13:08,700 --> 03:13:10,930
它应该是橙色的,那么你就知道它正在工作
4693
03:13:11,170 --> 03:13:12,570
这个人在做什么
4694
03:13:12,570 --> 03:13:16,570
如果我返回二维视图并选择激光
4695
03:13:16,700 --> 03:13:20,600
我现在在检查器中得到另一个参数
4696
03:13:20,900 --> 03:13:23,270
这给了我速度,我可以更新这个
4697
03:13:23,270 --> 03:13:24,930
假设到 2000
4698
03:13:25,270 --> 03:13:26,870
现在如果我再次运行游戏
4699
03:13:27,600 --> 03:13:30,670
激光移动得更快
4700
03:13:32,000 --> 03:13:35,700
所有这个导出所做的就是公开变量
4701
03:13:35,700 --> 03:13:36,900
给检查员
4702
03:13:36,900 --> 03:13:39,200
这样你就可以更轻松地更改它
4703
03:13:39,530 --> 03:13:42,530
这通常非常好并且使游戏变得更好
4704
03:13:42,530 --> 03:13:43,870
更容易更新
4705
03:13:44,530 --> 03:13:45,000
凉爽的
4706
03:13:45,000 --> 03:13:48,770
在我们的例子中,这涵盖了另一个重要部分
4707
03:13:48,770 --> 03:13:50,530
我们现在可以移动激光
4708
03:13:51,500 --> 03:13:52,300
最后
4709
03:13:52,370 --> 03:13:56,000
我想向该射弹添加一个激光实例
4710
03:13:56,000 --> 03:13:58,000
而不是水平音符
4711
03:13:58,100 --> 03:13:59,930
这非常容易完成
4712
03:14:00,330 --> 03:14:03,730
现在当我们打电话给这个孩子时
4713
03:14:03,930 --> 03:14:05,970
我们正在调用该函数
4714
03:14:05,970 --> 03:14:08,400
脚本附加到的节点
4715
03:14:08,700 --> 03:14:10,130
这是这个节点的二维
4716
03:14:10,130 --> 03:14:11,900
现在我已经选择了它
4717
03:14:12,330 --> 03:14:14,370
将子项添加到另一个注释中
4718
03:14:14,500 --> 03:14:16,600
您所要做的就是获得一张便条本身
4719
03:14:16,600 --> 03:14:18,930
所以让我拖入射弹
4720
03:14:19,530 --> 03:14:22,800
然后运行方法添加孩子
4721
03:14:23,470 --> 03:14:25,370
不要忘记实际添加孩子
4722
03:14:25,370 --> 03:14:26,700
这将是激光
4723
03:14:26,700 --> 03:14:28,300
然后我们就可以出发了
4724
03:14:28,670 --> 03:14:32,370
如果我现在再次运行所有这些,请单击远程
4725
03:14:34,100 --> 03:14:37,300
你现在可以看看我是否将游戏移到一边
4726
03:14:37,670 --> 03:14:39,870
在射弹内部我们有一个下拉菜单
4727
03:14:40,070 --> 03:14:43,530
我们不断增加更多的激光器
4728
03:14:43,530 --> 03:14:46,170
有一点延迟,但绝对有效
4729
03:14:50,130 --> 03:14:52,800
我们已经介绍了最后一部分
4730
03:14:54,130 --> 03:14:55,970
我们现在要做的就是做一个练习
4731
03:14:55,970 --> 03:14:57,300
然后我们就可以出发了
4732
03:14:58,370 --> 03:15:00,800
当触发此辅助操作时
4733
03:15:00,930 --> 03:15:02,200
我希望你们创建一个
4734
03:15:02,200 --> 03:15:04,570
具有 2D 刚体的手榴弹场景
4735
03:15:04,930 --> 03:15:07,530
现在这个动作会很奇怪
4736
03:15:07,530 --> 03:15:09,330
所以不用太担心
4737
03:15:09,330 --> 03:15:10,970
我将在下一部分中介绍这一点
4738
03:15:11,670 --> 03:15:12,500
一旦你拥有了
4739
03:15:12,500 --> 03:15:15,130
在杠杆场景中创建该节点的实例
4740
03:15:15,130 --> 03:15:17,700
并将其定位在枪嘴位置
4741
03:15:17,870 --> 03:15:18,470
基本上
4742
03:15:18,470 --> 03:15:20,700
我希望你们重复我们为激光所做的事情
4743
03:15:20,700 --> 03:15:22,470
除了 2D 刚体
4744
03:15:22,730 --> 03:15:25,200
现在主要的区别是不再是激光
4745
03:15:25,200 --> 03:15:26,500
我们有一个手榴弹
4746
03:15:26,500 --> 03:15:28,000
你可以找到它的图片
4747
03:15:28,070 --> 03:15:30,400
图形文件夹中激光器旁边
4748
03:15:31,300 --> 03:15:33,670
可能现在并尝试实施所有这些
4749
03:15:36,730 --> 03:15:38,170
回到好的面团中
4750
03:15:38,170 --> 03:15:40,470
我想创建一个新场景
4751
03:15:40,600 --> 03:15:45,330
这个新场景将是一个 2d 刚体
4752
03:15:46,530 --> 03:15:49,330
让我们立即将其重命名为手榴弹
4753
03:15:49,800 --> 03:15:53,130
就像激光一样,我们还需要两个音符
4754
03:15:53,130 --> 03:15:56,300
我们首先需要一个精灵,这样我们才能看到一些东西
4755
03:15:56,500 --> 03:15:58,370
然后我们需要一个碰撞形状 2d
4756
03:15:58,930 --> 03:16:01,370
我们从射弹中获得的精灵
4757
03:16:01,370 --> 03:16:02,900
我们有手榴弹
4758
03:16:03,570 --> 03:16:04,670
让我把它放在那里
4759
03:16:04,670 --> 03:16:05,500
我们就这样吧
4760
03:16:05,500 --> 03:16:06,800
我们有一个手榴弹
4761
03:16:07,870 --> 03:16:09,500
对于碰撞形状
4762
03:16:09,500 --> 03:16:10,700
我想对于这个
4763
03:16:10,700 --> 03:16:13,100
圆形是理想的形状
4764
03:16:13,100 --> 03:16:14,570
像这样的东西
4765
03:16:15,400 --> 03:16:16,070
接着就,随即
4766
03:16:16,070 --> 03:16:19,570
我可以把这一切都保存为激光旁边的手榴弹
4767
03:16:20,270 --> 03:16:24,200
在我们使用这个之前我想要在关卡内部
4768
03:16:24,570 --> 03:16:28,300
只需将这个场景与控制转移和
4769
03:16:28,470 --> 03:16:30,730
并添加手榴弹
4770
03:16:30,730 --> 03:16:34,300
因为我认为默认情况下这个有点大
4771
03:16:34,300 --> 03:16:35,870
它甚至比播放器还要大
4772
03:16:37,270 --> 03:16:37,900
为了那个原因
4773
03:16:37,900 --> 03:16:41,070
在手榴弹里面我想得到 2d 精灵
4774
03:16:41,170 --> 03:16:45,600
并将缩放比例转换为 0.2
4775
03:16:46,100 --> 03:16:50,130
现在我还必须将碰撞形状更新为
4776
03:16:50,130 --> 03:16:52,370
像这样的东西
4777
03:16:54,170 --> 03:16:55,070
保存场景
4778
03:16:55,070 --> 03:16:55,930
现在
4779
03:16:56,000 --> 03:16:59,530
我们有一枚手榴弹,可能有点太小了
4780
03:16:59,970 --> 03:17:03,600
我们采用 0.4 的比例
4781
03:17:04,670 --> 03:17:07,730
我们再次需要一个新的碰撞形状
4782
03:17:08,000 --> 03:17:09,000
看起来不错
4783
03:17:09,570 --> 03:17:12,300
现在这感觉更合适
4784
03:17:12,970 --> 03:17:14,100
现在我们有了
4785
03:17:14,270 --> 03:17:16,870
我们可以在关卡脚本中工作
4786
03:17:16,870 --> 03:17:19,370
创建该场景的一个实例
4787
03:17:19,370 --> 03:17:22,500
一旦玩家点击次要操作
4788
03:17:22,500 --> 03:17:24,500
触发玩家手榴弹
4789
03:17:24,670 --> 03:17:26,000
我想作为一个提醒
4790
03:17:26,300 --> 03:17:29,130
当玩家点击次要操作时
4791
03:17:29,330 --> 03:17:31,770
然后我们发出手榴弹信号
4792
03:17:31,930 --> 03:17:33,300
还有这个手榴弹信号
4793
03:17:33,300 --> 03:17:35,930
我们正在这个函数内部捕获
4794
03:17:37,570 --> 03:17:40,130
首先,尽管我们必须创建一个
4795
03:17:41,130 --> 03:17:44,200
激光场景就像我们之前为激光所做的那样
4796
03:17:44,670 --> 03:17:45,800
使事情保持一致
4797
03:17:45,800 --> 03:17:48,130
我想要一颗手榴弹
4798
03:17:48,400 --> 03:17:52,130
场景将再次变得拥挤
4799
03:17:52,570 --> 03:17:54,300
我想预加载
4800
03:17:54,300 --> 03:17:57,270
我想在那里拿到手榴弹
4801
03:17:57,570 --> 03:17:59,800
正确拼写这个会有很大帮助
4802
03:18:01,470 --> 03:18:04,200
对于这个现在我们有几个选择
4803
03:18:04,270 --> 03:18:05,800
我们有手榴弹 PNG
4804
03:18:06,100 --> 03:18:08,930
然后在 UI 内部我们有另一个手榴弹 PNG
4805
03:18:09,070 --> 03:18:10,800
然后我们就有了实际场景
4806
03:18:10,900 --> 03:18:13,470
所以要小心你在这里选择哪一个
4807
03:18:14,170 --> 03:18:17,730
再说一遍,你总是想要一个 TSC 结局
4808
03:18:18,400 --> 03:18:21,400
我觉得buddhau在这里很聪明
4809
03:18:21,470 --> 03:18:23,470
如果你选择其他任何东西
4810
03:18:23,500 --> 03:18:25,800
就像你会得到一个错误的图像
4811
03:18:26,330 --> 03:18:27,130
像这样
4812
03:18:28,100 --> 03:18:31,300
您无法分配压缩纹理 2d 的值
4813
03:18:31,300 --> 03:18:33,000
到可变的手榴弹场景
4814
03:18:33,470 --> 03:18:36,330
那是因为我们有一个指定类型的打包场景
4815
03:18:36,330 --> 03:18:39,600
所以这个拥挤的场景实际上在这里很有帮助
4816
03:18:40,070 --> 03:18:41,770
所以让我撤销这一切
4817
03:18:41,770 --> 03:18:43,000
这会效果更好
4818
03:18:43,800 --> 03:18:44,730
接下来
4819
03:18:44,970 --> 03:18:48,370
我们必须创建这个打包场景的一个实例
4820
03:18:48,700 --> 03:18:51,000
我通过创建一个新变量来完成
4821
03:18:51,000 --> 03:18:52,400
我们称之为手榴弹
4822
03:18:52,570 --> 03:18:55,170
为此我们想要有手榴弹场景
4823
03:18:55,270 --> 03:18:57,470
然后实例化
4824
03:18:58,200 --> 03:19:01,100
接下来我想要拿到手榴弹
4825
03:19:01,330 --> 03:19:05,370
然后更新位置并设置位置
4826
03:19:05,770 --> 03:19:08,770
我们希望从信号中得到
4827
03:19:08,770 --> 03:19:10,130
现在它不存在
4828
03:19:10,130 --> 03:19:11,900
所以谷歌给了我们一个错误
4829
03:19:12,770 --> 03:19:15,400
修复播放器内部的问题
4830
03:19:15,870 --> 03:19:18,870
圆盘手榴弹发射时包含一个位置
4831
03:19:19,370 --> 03:19:20,730
我想对于这个
4832
03:19:20,900 --> 03:19:23,270
我们可以随机选择一个位置
4833
03:19:23,270 --> 03:19:24,900
如果你想练习
4834
03:19:24,900 --> 03:19:26,930
我强烈建议你这样做
4835
03:19:27,000 --> 03:19:28,730
虽然稍微简化一下事情
4836
03:19:29,330 --> 03:19:32,530
我想获得一个职位
4837
03:19:32,900 --> 03:19:34,270
我们称之为标记
4838
03:19:34,500 --> 03:19:37,170
解决所有这些问题的另一种方法是
4839
03:19:37,170 --> 03:19:39,930
我再次可以启动激光
4840
03:19:39,970 --> 03:19:43,400
我想要获得的职位
4841
03:19:44,600 --> 03:19:46,500
孩子们再次
4842
03:19:46,770 --> 03:19:49,970
对此我只想选择 0 号孩子
4843
03:19:50,800 --> 03:19:52,970
这是我放在中间的那个
4844
03:19:52,970 --> 03:19:55,330
所以这个应该总是工作得很好
4845
03:19:56,600 --> 03:19:59,270
因为现在将返回一个节点
4846
03:19:59,270 --> 03:20:01,800
我可以获得全球位置
4847
03:20:02,400 --> 03:20:03,930
马上就这个
4848
03:20:04,200 --> 03:20:05,700
让我们实际删除标记
4849
03:20:05,700 --> 03:20:07,870
因为现在我们只是获得一个位置
4850
03:20:07,870 --> 03:20:08,900
在这个位置
4851
03:20:08,970 --> 03:20:11,600
我想在我们发送信号时发出
4852
03:20:12,370 --> 03:20:14,570
所以在关卡内部
4853
03:20:14,570 --> 03:20:17,270
我得到另一个参数,即位置
4854
03:20:17,570 --> 03:20:19,470
有了这个古道应该会再次快乐
4855
03:20:19,500 --> 03:20:20,300
完美的
4856
03:20:20,400 --> 03:20:24,470
最后我们要把这个新的手榴弹添加到note 3中
4857
03:20:24,770 --> 03:20:25,730
为此
4858
03:20:25,930 --> 03:20:29,330
我要重复使用射弹 note 2d
4859
03:20:29,800 --> 03:20:35,170
所以我想得到射弹然后添加一个孩子
4860
03:20:35,530 --> 03:20:38,000
只是现在孩子将成为手榴弹
4861
03:20:38,670 --> 03:20:41,300
这样我就可以运行这一切
4862
03:20:42,000 --> 03:20:43,930
如果我现在点击
4863
03:20:44,800 --> 03:20:47,870
使用鼠标右键我们会得到一些奇怪的行为
4864
03:20:48,200 --> 03:20:51,730
我们确实得到了一枚手榴弹,但它正在掉下来
4865
03:20:52,330 --> 03:20:54,500
这是一个非常奇怪的行为
4866
03:20:54,500 --> 03:20:56,530
激光仍然工作得很好
4867
03:20:57,070 --> 03:20:58,470
这部分变得很长
4868
03:20:58,470 --> 03:20:59,470
所以让我们在这里结束吧
4869
03:20:59,470 --> 03:21:02,770
在下一部分中我们将更多地讨论刚体 2D
4870
03:21:02,970 --> 03:21:05,070
如果你了解他们,他们就很容易合作
4871
03:21:05,070 --> 03:21:07,330
但如果你不这样做,他们真的会令人沮丧
4872
03:21:07,600 --> 03:21:09,500
让我们覆盖最终的碰撞体
4873
03:21:09,500 --> 03:21:11,370
这是一个二维刚体
4874
03:21:11,570 --> 03:21:13,370
除此之外
4875
03:21:13,400 --> 03:21:15,900
我们还将介绍球员轮换
4876
03:21:16,130 --> 03:21:18,770
这样我们就可以向不同的方向拍摄
4877
03:21:18,770 --> 03:21:20,700
现在非常缺少的东西
4878
03:21:20,900 --> 03:21:22,670
但首先要提醒一下
4879
03:21:22,700 --> 03:21:25,100
这是所有的碰撞对象
4880
03:21:25,370 --> 03:21:26,170
在此刻
4881
03:21:26,200 --> 03:21:28,330
我们已经详细介绍了 2d 区域
4882
03:21:28,330 --> 03:21:29,930
我们已经介绍了静态人体 2ds
4883
03:21:29,930 --> 03:21:31,670
我们有一个 2d 角色身体
4884
03:21:31,870 --> 03:21:34,570
所以唯一缺少的是 2d 刚体
4885
03:21:34,930 --> 03:21:36,300
并作为提醒
4886
03:21:36,470 --> 03:21:39,730
这是一个通过物理运动的运动体
4887
03:21:39,730 --> 03:21:41,730
它基本上是一个炮弹
4888
03:21:42,130 --> 03:21:44,200
我们已经创建了手榴弹
4889
03:21:44,200 --> 03:21:47,670
所以我们已经有了一些很好的起点
4890
03:21:47,800 --> 03:21:49,930
但是如果我去古多
4891
03:21:50,100 --> 03:21:51,870
我已经可以告诉你了
4892
03:21:51,870 --> 03:21:55,970
提醒大家,现在手榴弹正在起作用
4893
03:21:56,000 --> 03:21:57,400
真的真的很奇怪
4894
03:21:57,400 --> 03:21:58,970
那么这里发生了什么
4895
03:21:59,200 --> 03:22:02,500
问题是 2d 刚体有重力设置
4896
03:22:02,500 --> 03:22:04,530
默认设置为 1
4897
03:22:04,700 --> 03:22:06,200
这意味着它正在掉落
4898
03:22:06,300 --> 03:22:08,530
这是我们现在必须处理的问题
4899
03:22:08,700 --> 03:22:09,570
除此之外
4900
03:22:09,570 --> 03:22:12,570
您还可以在检查器中设置物理行为
4901
03:22:12,570 --> 03:22:15,130
还有您设置的其他选项
4902
03:22:15,130 --> 03:22:16,930
通过物理材料
4903
03:22:17,570 --> 03:22:19,370
我会在一秒钟内介绍这些内容
4904
03:22:19,670 --> 03:22:21,930
最后你只需要给出这个
4905
03:22:21,930 --> 03:22:24,330
Richard Poditudi 正在启动速度
4906
03:22:24,700 --> 03:22:27,400
所有其他运动都是由物理学处理的
4907
03:22:27,900 --> 03:22:30,170
这又是一个相当多的理论
4908
03:22:30,170 --> 03:22:31,930
让我们看看这一切
4909
03:22:32,400 --> 03:22:35,170
回到古道,我想看看手榴弹
4910
03:22:35,170 --> 03:22:37,900
右边是检查员
4911
03:22:38,370 --> 03:22:38,970
现在
4912
03:22:38,970 --> 03:22:41,970
我们面临的主要问题是重力尺度
4913
03:22:42,100 --> 03:22:43,330
这被设置为 1
4914
03:22:43,330 --> 03:22:45,700
这意味着事情正在恶化
4915
03:22:45,900 --> 03:22:48,970
如果我们将其设置为 0 并重新开始游戏
4916
03:22:49,500 --> 03:22:51,070
我现在可以发射手榴弹了
4917
03:22:51,100 --> 03:22:53,370
并且它不再掉落
4918
03:22:53,970 --> 03:22:57,470
我们也会遇到碰撞,但仅此而已
4919
03:22:57,470 --> 03:22:58,670
没有其他事情发生
4920
03:22:58,870 --> 03:23:02,470
基本上通过这个设置,我们有一个静态主体
4921
03:23:02,900 --> 03:23:05,400
那么我们怎样才能真正改变事情
4922
03:23:06,300 --> 03:23:09,370
为此你会想往下看一点
4923
03:23:09,500 --> 03:23:12,200
我们有线性和角度
4924
03:23:12,330 --> 03:23:14,100
线性是其中比较容易的一种
4925
03:23:14,100 --> 03:23:15,730
例如我们有速度
4926
03:23:15,800 --> 03:23:18,500
这是理查德身体的运动
4927
03:23:19,100 --> 03:23:20,670
我们有 X 和 y
4928
03:23:20,670 --> 03:23:24,900
例如,如果我将 X 设置为 100 并再次运行所有这些
4929
03:23:26,270 --> 03:23:29,100
然后我们向右移动
4930
03:23:30,130 --> 03:23:31,970
这适用于所有
4931
03:23:31,970 --> 03:23:33,500
我们要创建的对象
4932
03:23:33,670 --> 03:23:35,570
所以这工作得很好
4933
03:23:35,800 --> 03:23:37,500
我们也会遇到碰撞
4934
03:23:37,930 --> 03:23:38,730
看起来不错
4935
03:23:39,530 --> 03:23:42,170
你可以在这里设置更多的东西
4936
03:23:42,170 --> 03:23:44,330
例如这个角速度
4937
03:23:44,330 --> 03:23:46,100
我们有持续的力量
4938
03:23:46,170 --> 03:23:48,500
但我不太担心这些
4939
03:23:48,570 --> 03:23:51,670
相反,我想要研究的是物理材料
4940
03:23:52,170 --> 03:23:53,130
稍微支持一下
4941
03:23:54,770 --> 03:23:57,200
我们有一个完整的物理材料
4942
03:23:57,370 --> 03:23:58,730
现在它说空
4943
03:23:58,730 --> 03:24:01,130
但如果你点击它你可以给它一个新的物理
4944
03:24:01,130 --> 03:24:01,970
材料
4945
03:24:02,600 --> 03:24:05,070
这给了你更多的选择
4946
03:24:05,170 --> 03:24:06,800
特别是在那里反弹
4947
03:24:06,800 --> 03:24:07,900
这是一个有趣的
4948
03:24:07,900 --> 03:24:10,670
例如我们可以将其设置为非常大的值
4949
03:24:10,700 --> 03:24:11,770
假设 100
4950
03:24:12,370 --> 03:24:13,770
现在如果我们再次运行游戏
4951
03:24:14,400 --> 03:24:15,870
我们得到了反弹
4952
03:24:16,000 --> 03:24:18,370
手榴弹从我们的玩家身上弹开
4953
03:24:18,700 --> 03:24:20,500
我们可以这样做几次
4954
03:24:20,500 --> 03:24:21,930
让我再制作一个手榴弹
4955
03:24:22,270 --> 03:24:24,770
然后我们又得到了一次反弹
4956
03:24:26,130 --> 03:24:27,800
如果我们将其设置为一个较低的数字
4957
03:24:27,870 --> 03:24:29,270
让我将其设置回 0
4958
03:24:29,400 --> 03:24:31,370
我们再次做这一切
4959
03:24:32,070 --> 03:24:34,370
现在我们得到了一种不同类型的弹跳行为
4960
03:24:34,670 --> 03:24:37,100
所有这些数字很大程度上取决于质量
4961
03:24:37,100 --> 03:24:39,770
惯性然后物理材料
4962
03:24:39,930 --> 03:24:43,000
然后您可以在此处设置所有其他内容
4963
03:24:43,470 --> 03:24:45,600
如果你想拥有真正良好的物理行为
4964
03:24:45,600 --> 03:24:47,770
你很想玩这个
4965
03:24:48,300 --> 03:24:49,130
虽然就我而言
4966
03:24:49,130 --> 03:24:51,070
我不会为此太担心
4967
03:24:51,370 --> 03:24:54,130
相反,现在更重要的是
4968
03:24:54,300 --> 03:24:55,500
就是现在吗
4969
03:24:55,500 --> 03:24:58,370
我们总是朝一个方向发射手榴弹
4970
03:24:58,370 --> 03:25:00,300
所以现在这将是在右边
4971
03:25:00,870 --> 03:25:03,370
但这显然效果不太好
4972
03:25:03,670 --> 03:25:05,170
所以我们必须弄清楚
4973
03:25:05,170 --> 03:25:08,200
如何控制这个手榴弹的启动方向
4974
03:25:08,370 --> 03:25:11,700
为此我们再次需要一些代码
4975
03:25:11,800 --> 03:25:12,870
虽然首先
4976
03:25:12,930 --> 03:25:15,570
我想尽量减少物理材料
4977
03:25:15,770 --> 03:25:18,530
如果你点击它,你可以最大化和最小化它
4978
03:25:18,970 --> 03:25:21,730
我想将速度设置回 0
4979
03:25:22,530 --> 03:25:23,600
一旦我们拥有了这一切
4980
03:25:23,730 --> 03:25:25,330
我可以看一下脚本
4981
03:25:25,330 --> 03:25:28,530
我们正在制作一个手榴弹
4982
03:25:28,700 --> 03:25:31,170
玩家手榴弹功能内部
4983
03:25:31,670 --> 03:25:34,270
现在我们只是设定一个位置
4984
03:25:34,800 --> 03:25:38,530
我还想做的是再次拿到手榴弹
4985
03:25:38,870 --> 03:25:41,700
然后设置线速度
4986
03:25:42,100 --> 03:25:45,330
现在古多不会自动完成这一行
4987
03:25:45,330 --> 03:25:47,200
实际上有一些超级有用的东西
4988
03:25:47,200 --> 03:25:48,330
我可以马上掩护
4989
03:25:48,330 --> 03:25:51,170
我们知道这个手榴弹是一个二维刚体
4990
03:25:51,400 --> 03:25:53,130
和一个 2d 刚体
4991
03:25:53,300 --> 03:25:57,000
如果我打开检查器有一个线速度
4992
03:25:57,170 --> 03:25:59,930
所以它应该出现在自动完成中
4993
03:26:00,170 --> 03:26:01,470
然而它没有
4994
03:26:01,600 --> 03:26:03,600
或者如果我输入线性则什么也不会发生
4995
03:26:04,200 --> 03:26:07,130
之所以不这样做是因为古道不知道
4996
03:26:07,130 --> 03:26:09,670
这个手榴弹是一个刚体 2d
4997
03:26:10,000 --> 03:26:13,070
但我们可以给古道一个提示,或者更确切地说我们可以告诉
4998
03:26:13,070 --> 03:26:14,800
实例化这个对象
4999
03:26:15,530 --> 03:26:19,130
sa 刚体
5000
03:26:19,770 --> 03:26:20,570
那样
5001
03:26:20,700 --> 03:26:24,900
手榴弹现在将获得线速度
5002
03:26:25,730 --> 03:26:27,700
哪个更容易使用
5003
03:26:28,330 --> 03:26:30,300
你不必添加这些东西
5004
03:26:30,300 --> 03:26:32,370
但在游戏开发中经常
5005
03:26:32,400 --> 03:26:33,970
或总体上正在开发中
5006
03:26:34,000 --> 03:26:35,670
你想要非常精确
5007
03:26:35,670 --> 03:26:37,730
关于您正在使用的数据类型
5008
03:26:37,930 --> 03:26:40,200
所以添加这个会非常有帮助
5009
03:26:41,330 --> 03:26:45,370
但无论如何这个线速度想要有一个向量
5010
03:26:46,130 --> 03:26:48,330
现在就给它 1 吧
5011
03:26:48,470 --> 03:26:50,770
我们想要一个向量 2
5012
03:26:51,100 --> 03:26:53,200
总是指向上方
5013
03:26:53,330 --> 03:26:55,270
所以我们总是向北拍摄
5014
03:26:55,500 --> 03:26:58,730
我们可以乘以速度,假设现在是 100
5015
03:27:00,270 --> 03:27:02,870
这个人现在要做的就是
5016
03:27:03,570 --> 03:27:05,500
手榴弹将会向上移动
5017
03:27:06,200 --> 03:27:07,470
我们拥有的手榴弹
5018
03:27:07,470 --> 03:27:08,900
默认情况下在场景中
5019
03:27:08,900 --> 03:27:10,800
不会得到这个属性
5020
03:27:11,000 --> 03:27:13,670
所以提醒一下,让我尽量减少这个
5021
03:27:14,900 --> 03:27:16,100
关卡内部
5022
03:27:16,100 --> 03:27:18,600
我制作了一枚手榴弹来测试规模
5023
03:27:18,770 --> 03:27:19,600
和这个
5024
03:27:19,600 --> 03:27:23,300
我们只是在编辑器中添加一个实例
5025
03:27:24,100 --> 03:27:26,270
然而在脚本内部
5026
03:27:26,370 --> 03:27:27,770
当我们制造手榴弹时
5027
03:27:27,770 --> 03:27:30,600
我们正在更新位置和线速度
5028
03:27:31,000 --> 03:27:31,500
意思是
5029
03:27:31,500 --> 03:27:33,700
我们在函数内部创建的手榴弹
5030
03:27:33,700 --> 03:27:34,770
将要搬家
5031
03:27:34,770 --> 03:27:37,770
但我们刚刚创建的那个不会移动
5032
03:27:37,900 --> 03:27:39,900
我希望这里的差异是有意义的
5033
03:27:40,170 --> 03:27:41,870
你也可以在不同的方向上工作
5034
03:27:41,870 --> 03:27:44,170
例如现在可以留下这个
5035
03:27:44,400 --> 03:27:45,600
让我再运行一次
5036
03:27:46,470 --> 03:27:48,570
现在我们有一枚手榴弹向左移动
5037
03:27:48,700 --> 03:27:50,730
所以这仍然工作得很好
5038
03:27:51,470 --> 03:27:52,730
话虽如此
5039
03:27:52,800 --> 03:27:55,900
我们不只是想要一个硬编码的方向
5040
03:27:56,000 --> 03:27:56,700
我们想
5041
03:27:56,700 --> 03:27:59,100
朝玩家注视的方向射击
5042
03:27:59,330 --> 03:28:02,500
为此我们必须添加一些东西
5043
03:28:03,070 --> 03:28:03,900
首先
5044
03:28:04,970 --> 03:28:06,770
我们必须从玩家开始
5045
03:28:07,000 --> 03:28:10,200
所以现在玩家总是向上看
5046
03:28:10,300 --> 03:28:12,670
这显然不理想
5047
03:28:13,130 --> 03:28:15,730
留意我们可以非常轻松地改变它
5048
03:28:16,600 --> 03:28:20,670
我想添加的流程函数内部
5049
03:28:21,100 --> 03:28:25,370
另一个条目我们称之为旋转层或只是旋转
5050
03:28:26,000 --> 03:28:28,070
基本上我们想做的
5051
03:28:28,100 --> 03:28:31,470
我们要玩的就是一直看着鼠标
5052
03:28:31,870 --> 03:28:34,500
意思是如果玩家在这里的某个地方
5053
03:28:34,500 --> 03:28:36,470
我们的鼠标就在这里的某个地方
5054
03:28:36,570 --> 03:28:39,470
我们要玩的就是旋转看鼠标
5055
03:28:40,000 --> 03:28:41,070
为了那个戈多
5056
03:28:41,070 --> 03:28:43,930
有一个非常有用的内置功能
5057
03:28:44,300 --> 03:28:46,730
这个叫做看
5058
03:28:47,000 --> 03:28:50,200
这个查看功能正在旋转任何类型的节点
5059
03:28:50,200 --> 03:28:52,200
所以它会查看某个向量
5060
03:28:52,200 --> 03:28:53,570
你可以在预测中看到它
5061
03:28:53,570 --> 03:28:55,270
我们得到点向量2
5062
03:28:56,000 --> 03:28:58,900
我们想要查看的点是鼠标位置
5063
03:29:00,470 --> 03:29:02,000
我们可以很容易地得到这个
5064
03:29:02,000 --> 03:29:05,970
我们需要另一个名为 get Global 的函数
5065
03:29:05,970 --> 03:29:07,200
鼠标位置
5066
03:29:08,100 --> 03:29:11,470
这几乎就是我们现在所需要的
5067
03:29:11,470 --> 03:29:12,570
我可以运行代码
5068
03:29:12,570 --> 03:29:14,000
我们会得到一些奇怪的东西
5069
03:29:14,870 --> 03:29:17,670
你可以看到我的鼠标和播放器正在旋转
5070
03:29:17,730 --> 03:29:20,530
但它以错误的方式旋转
5071
03:29:21,870 --> 03:29:25,370
所以我们基本上有一个 90 度的偏移
5072
03:29:25,800 --> 03:29:26,730
原因
5073
03:29:27,300 --> 03:29:31,000
让我最小化所有这些并解释一下
5074
03:29:31,170 --> 03:29:34,070
再多一点,这是播放器
5075
03:29:34,900 --> 03:29:37,130
我们希望玩家始终注视着
5076
03:29:37,800 --> 03:29:40,370
一直向前,假设这是鼠标
5077
03:29:40,370 --> 03:29:41,700
这将是理想的
5078
03:29:42,670 --> 03:29:43,900
然而现在
5079
03:29:43,930 --> 03:29:45,800
问题是
5080
03:29:45,870 --> 03:29:49,300
玩家总是大致朝这个方向旋转
5081
03:29:49,400 --> 03:29:51,300
那么出了什么问题
5082
03:29:51,730 --> 03:29:53,900
这个问题的答案其实很简单
5083
03:29:54,000 --> 03:29:56,200
向量的默认旋转
5084
03:29:56,200 --> 03:29:58,800
总是向右
5085
03:29:59,130 --> 03:30:01,970
所以这是默认的 0 位置
5086
03:30:02,170 --> 03:30:04,570
因为我们的玩家目前正在抬头
5087
03:30:04,870 --> 03:30:07,700
我们给它一个负 90 度偏移
5088
03:30:07,870 --> 03:30:10,370
这就是导致游戏内部问题的原因
5089
03:30:10,970 --> 03:30:14,470
为了解决这个问题,我们必须获取玩家图像
5090
03:30:14,530 --> 03:30:15,900
然后去改造
5091
03:30:15,900 --> 03:30:19,100
然后将所有这些旋转 90 度
5092
03:30:19,500 --> 03:30:22,070
现在我们必须重新调整比赛
5093
03:30:22,070 --> 03:30:23,970
与碰撞形状
5094
03:30:23,970 --> 03:30:26,770
这应该会更好
5095
03:30:27,400 --> 03:30:29,400
如果我现在再次运行这一切
5096
03:30:29,800 --> 03:30:30,600
我们得到了
5097
03:30:31,200 --> 03:30:35,170
更好的行为,所以我对此感到非常满意
5098
03:30:35,930 --> 03:30:38,370
虽然现在如果我真的点击鼠标按钮
5099
03:30:38,570 --> 03:30:41,370
我们得到一些奇怪的激光生成行为
5100
03:30:41,530 --> 03:30:42,800
和手榴弹一样
5101
03:30:42,900 --> 03:30:44,670
这不太好用
5102
03:30:45,200 --> 03:30:48,200
原因是现在我们这里有枪嘴
5103
03:30:48,200 --> 03:30:50,530
激光起始位置在这里
5104
03:30:51,000 --> 03:30:53,530
幸运的是很容易修复
5105
03:30:53,570 --> 03:30:55,330
让我放大一点
5106
03:30:55,600 --> 03:30:56,530
我们要做的就是
5107
03:30:56,670 --> 03:31:00,070
就是把马库斯移到新的位置
5108
03:31:00,800 --> 03:31:03,070
它不必太精确,但是
5109
03:31:03,370 --> 03:31:06,930
正确地得到这样的东西
5110
03:31:08,130 --> 03:31:10,470
这样我就可以再次运行游戏
5111
03:31:10,900 --> 03:31:13,200
现在我们有了激光
5112
03:31:13,670 --> 03:31:15,200
从我们的枪顶
5113
03:31:15,700 --> 03:31:17,100
与手榴弹相同
5114
03:31:18,330 --> 03:31:21,870
这绝对是一个很酷的改进
5115
03:31:23,770 --> 03:31:26,500
但现在我们有另一个问题
5116
03:31:26,730 --> 03:31:28,700
那就是你已经可以看到它了
5117
03:31:28,770 --> 03:31:30,200
激光总是向上
5118
03:31:30,200 --> 03:31:32,330
手榴弹总是向左
5119
03:31:33,270 --> 03:31:36,500
这意味着我们必须添加更多东西
5120
03:31:37,270 --> 03:31:40,500
让我们从手榴弹开始并发送信号
5121
03:31:40,500 --> 03:31:44,130
我实际上意识到我忘记添加职位
5122
03:31:45,200 --> 03:31:46,000
下面这里
5123
03:31:46,100 --> 03:31:49,000
当我们发出手榴弹信号时
5124
03:31:49,070 --> 03:31:51,500
我们已经包含了该职位并且
5125
03:31:51,930 --> 03:31:54,470
即使您不添加它,这仍然有效
5126
03:31:54,800 --> 03:31:56,470
但包含它是更好的形式
5127
03:31:57,130 --> 03:31:58,900
我想加入一个职位
5128
03:31:58,930 --> 03:32:03,100
除此之外我还想包括一个方向
5129
03:32:04,170 --> 03:32:06,400
我们必须得到这个方向
5130
03:32:06,470 --> 03:32:08,330
所有这一切都将发生在里面
5131
03:32:08,330 --> 03:32:09,930
次要动作的
5132
03:32:09,930 --> 03:32:10,870
if 语句
5133
03:32:11,170 --> 03:32:15,400
我除了一个位置之外还想发出一个方向
5134
03:32:15,770 --> 03:32:17,500
现在不存在
5135
03:32:17,670 --> 03:32:19,570
所以我们必须创建它
5136
03:32:19,570 --> 03:32:21,770
让我们创建另一个VAR方向
5137
03:32:22,270 --> 03:32:26,300
那么我们需要什么来确定方向
5138
03:32:26,530 --> 03:32:29,330
那么我们需要的是一些向量数学
5139
03:32:29,370 --> 03:32:31,130
我们基本上想弄清楚
5140
03:32:31,130 --> 03:32:32,530
让我画出这一切
5141
03:32:32,730 --> 03:32:35,270
我们的玩家会在这附近的某个地方
5142
03:32:35,270 --> 03:32:37,330
实际位置并不重要
5143
03:32:37,670 --> 03:32:39,770
然后我们就有了鼠标位置
5144
03:32:39,770 --> 03:32:42,200
我们想知道的是方向
5145
03:32:42,330 --> 03:32:44,970
那么这个角度是多少
5146
03:32:45,300 --> 03:32:46,130
为此
5147
03:32:46,130 --> 03:32:49,170
我们需要一些非常基本的矢量图
5148
03:32:49,400 --> 03:32:51,200
让我简化一下绘图
5149
03:32:51,200 --> 03:32:52,900
这是我们的玩家
5150
03:32:52,900 --> 03:32:53,870
我们就叫它P吧
5151
03:32:54,170 --> 03:32:57,500
然后我们有了鼠标,我们称其为 m
5152
03:32:57,970 --> 03:33:00,100
这是有史以来最糟糕的 MIF
5153
03:33:00,370 --> 03:33:02,330
看起来应该更像这样
5154
03:33:02,600 --> 03:33:05,200
获取两个向量之间的方向
5155
03:33:05,200 --> 03:33:07,130
你总是想要目标向量
5156
03:33:07,130 --> 03:33:09,070
在我们的例子中是鼠标位置
5157
03:33:09,070 --> 03:33:11,770
从中减去起始向量
5158
03:33:11,770 --> 03:33:13,770
在我们的例子中是玩家位置
5159
03:33:14,130 --> 03:33:16,200
这意味着我们想做的一切
5160
03:33:16,570 --> 03:33:17,530
我们想要得到
5161
03:33:18,370 --> 03:33:21,670
再次获取全局鼠标位置
5162
03:33:21,970 --> 03:33:25,600
我们要从中减去玩家位置
5163
03:33:26,000 --> 03:33:28,100
我们可以很容易地得到玩家的位置
5164
03:33:28,100 --> 03:33:29,900
这实际上只是一个位置
5165
03:33:30,100 --> 03:33:33,300
因为记住这个脚本是附加到播放器上的
5166
03:33:33,300 --> 03:33:36,500
所以位置只是球员的属性
5167
03:33:37,030 --> 03:33:38,800
这样我们就有了一个好的开始
5168
03:33:38,800 --> 03:33:40,600
尽管古多在抱怨
5169
03:33:40,600 --> 03:33:42,430
已经有一个变量名
5170
03:33:42,430 --> 03:33:44,200
在此范围内声明的方向
5171
03:33:44,230 --> 03:33:47,130
因此我们必须重命名这个方向
5172
03:33:47,130 --> 03:33:49,170
我们称之为玩家方向
5173
03:33:49,800 --> 03:33:52,700
这就是我们想要发射的方向
5174
03:33:52,700 --> 03:33:54,730
当我们发出手榴弹信号时
5175
03:33:55,500 --> 03:33:56,300
话虽如此
5176
03:33:56,300 --> 03:33:58,170
我们还有一件事要做
5177
03:33:58,630 --> 03:34:01,970
这个结果将是一个向量
5178
03:34:02,130 --> 03:34:04,830
我们必须正常化
5179
03:34:05,430 --> 03:34:06,430
这意味着什么
5180
03:34:07,900 --> 03:34:10,170
回到绘图
5181
03:34:10,170 --> 03:34:12,370
让我再次清理掉它
5182
03:34:12,800 --> 03:34:15,600
假设玩家的位置是
5183
03:34:16,770 --> 03:34:20,900
X 为 200,y 为 100
5184
03:34:20,970 --> 03:34:22,600
这就是位置
5185
03:34:23,130 --> 03:34:26,800
假设鼠标的值可能是 300
5186
03:34:27,000 --> 03:34:28,800
和 200
5187
03:34:30,530 --> 03:34:32,800
如果我们从另一个中减去一个
5188
03:34:32,900 --> 03:34:34,830
我们在这里所做的操作
5189
03:34:35,200 --> 03:34:36,170
我们正在做的一切
5190
03:34:36,170 --> 03:34:41,030
我们得到的目标向量是 300 和 200
5191
03:34:41,330 --> 03:34:44,130
从中我们减去
5192
03:34:44,700 --> 03:34:47,800
X 为 200,y 为 100
5193
03:34:48,230 --> 03:34:53,200
结果将是 100 和 100
5194
03:34:53,630 --> 03:34:54,700
这些数字意味着什么
5195
03:34:54,700 --> 03:34:57,630
是我们必须向右移动 100 像素
5196
03:34:58,030 --> 03:35:00,330
还有 100 像素以上
5197
03:35:01,230 --> 03:35:03,630
这就是为什么我们从一个点到达另一个点
5198
03:35:03,830 --> 03:35:06,700
现在这些数字对该职位有用
5199
03:35:06,770 --> 03:35:09,200
但对于一个方向来说它们是无用的
5200
03:35:09,300 --> 03:35:11,530
因为我们想做的只是一秒钟
5201
03:35:11,800 --> 03:35:15,030
我们想要将其乘以速度
5202
03:35:15,370 --> 03:35:18,900
为简单起见,假设我们的速度为 500
5203
03:35:19,770 --> 03:35:23,430
所有这一切的结果将是一个巨大的数字
5204
03:35:23,600 --> 03:35:24,900
太大了
5205
03:35:25,700 --> 03:35:27,700
也会不一致
5206
03:35:27,730 --> 03:35:31,770
如果鼠标那么这个点就更远
5207
03:35:32,000 --> 03:35:37,370
假设它位于位置 1000 和 500
5208
03:35:37,630 --> 03:35:42,230
我们会得到 1,000 我们会得到 500
5209
03:35:42,300 --> 03:35:43,230
从此
5210
03:35:43,230 --> 03:35:48,030
我们将再次减去 200 和 100
5211
03:35:48,600 --> 03:35:52,800
结果将是 800 和 400
5212
03:35:53,630 --> 03:35:56,030
这两个数字不同
5213
03:35:56,200 --> 03:35:59,570
这个方向和这个方向不一致
5214
03:36:00,030 --> 03:36:00,830
结果会
5215
03:36:00,830 --> 03:36:03,370
取决于鼠标距离玩家有多远
5216
03:36:03,370 --> 03:36:05,900
我们会变得更快或更慢的运动
5217
03:36:06,030 --> 03:36:07,730
所以我希望这一切都有道理
5218
03:36:07,730 --> 03:36:09,170
基本上我们想做的
5219
03:36:09,170 --> 03:36:11,600
我们想要规范化方向
5220
03:36:11,830 --> 03:36:13,500
我们只能得到方向
5221
03:36:13,570 --> 03:36:15,430
但不是这个向量的长度
5222
03:36:16,700 --> 03:36:19,170
为此我们需要标准化
5223
03:36:19,170 --> 03:36:20,770
这是一个非常常见的
5224
03:36:20,770 --> 03:36:22,600
你在游戏开发中所做的操作
5225
03:36:23,000 --> 03:36:25,930
它减小了向量的大小 21
5226
03:36:26,570 --> 03:36:28,230
这会改变这个向量的长度
5227
03:36:28,230 --> 03:36:29,900
和这个向量相同
5228
03:36:30,030 --> 03:36:32,300
这样当我们将其乘以速度时
5229
03:36:32,300 --> 03:36:34,000
我们总是得到相同的结果
5230
03:36:34,400 --> 03:36:34,800
好的
5231
03:36:34,800 --> 03:36:37,330
对于代码不多,有很多解释
5232
03:36:37,330 --> 03:36:38,230
但是这个
5233
03:36:38,230 --> 03:36:39,030
是我们需要的
5234
03:36:39,030 --> 03:36:39,970
得到方向
5235
03:36:39,970 --> 03:36:41,800
玩家当前面临的
5236
03:36:42,700 --> 03:36:46,130
我们现在可以在关卡内部使用它
5237
03:36:46,170 --> 03:36:48,630
因为我们正在玩手榴弹
5238
03:36:48,730 --> 03:36:52,600
除了位置之外,我们现在还得到了方向
5239
03:36:53,200 --> 03:36:55,330
我想用这个方向
5240
03:36:55,330 --> 03:36:57,730
而不是向量左
5241
03:36:57,730 --> 03:36:59,300
所以方向
5242
03:36:59,830 --> 03:37:02,630
现在应该效果更好了
5243
03:37:03,230 --> 03:37:05,400
这样我就可以发射手榴弹
5244
03:37:05,430 --> 03:37:07,200
我总是要等两秒钟
5245
03:37:07,200 --> 03:37:10,900
但现在它正以正确的方式发展
5246
03:37:12,770 --> 03:37:15,130
所以这看起来好多了
5247
03:37:16,400 --> 03:37:18,100
我确实想做的另一件事
5248
03:37:18,100 --> 03:37:20,930
现在速度始终是100
5249
03:37:21,000 --> 03:37:23,000
我不太喜欢
5250
03:37:23,200 --> 03:37:25,100
回到手榴弹处
5251
03:37:25,970 --> 03:37:27,970
我想添加一个脚本
5252
03:37:28,300 --> 03:37:29,700
和脚本再次
5253
03:37:29,700 --> 03:37:31,800
我想在我们必须看到的同一个文件夹中
5254
03:37:31,800 --> 03:37:32,830
这个看起来不错
5255
03:37:32,900 --> 03:37:35,530
对于节点我希望它是空的
5256
03:37:36,130 --> 03:37:41,000
所以创建现在我们可以设置VAR速度
5257
03:37:41,600 --> 03:37:43,100
我们选择 750
5258
03:37:43,700 --> 03:37:45,970
虽然这不一定是变量
5259
03:37:46,030 --> 03:37:48,030
这可以只是一个常数
5260
03:37:48,030 --> 03:37:49,630
因为它不会改变
5261
03:37:50,370 --> 03:37:52,430
回到关卡内
5262
03:37:52,430 --> 03:37:54,900
我想再一次扩展这一切
5263
03:37:55,300 --> 03:37:57,730
我想拿到手榴弹
5264
03:37:58,130 --> 03:38:00,970
现在它有一个属性
5265
03:38:00,970 --> 03:38:03,830
让我们再次尝试一下速度
5266
03:38:06,430 --> 03:38:07,770
这是工作
5267
03:38:08,970 --> 03:38:10,630
嗯,手榴弹移动得更快
5268
03:38:10,970 --> 03:38:12,300
所以这是一个好兆头
5269
03:38:12,430 --> 03:38:14,600
虽然我确实想做一件事
5270
03:38:14,930 --> 03:38:17,830
假设我碰壁了,就像这样
5271
03:38:18,030 --> 03:38:18,730
现在
5272
03:38:18,730 --> 03:38:21,530
手榴弹几乎完美地粘在墙上
5273
03:38:22,000 --> 03:38:24,400
但我不太喜欢
5274
03:38:25,230 --> 03:38:26,400
克服这个
5275
03:38:26,430 --> 03:38:28,730
我要去检查员里面工作
5276
03:38:28,800 --> 03:38:30,600
物理材料内部
5277
03:38:30,600 --> 03:38:33,130
我将把摩擦力设置为 10
5278
03:38:33,500 --> 03:38:36,400
并反弹至0.4
5279
03:38:36,970 --> 03:38:38,500
除此之外
5280
03:38:39,230 --> 03:38:43,930
线性我们有潮湿,我想将其设置为 1.6
5281
03:38:44,370 --> 03:38:48,730
如果我再次尝试所有这些并碰壁
5282
03:38:48,930 --> 03:38:50,900
我们得到了更多的反弹
5283
03:38:51,370 --> 03:38:53,100
我确实更喜欢一点
5284
03:38:53,100 --> 03:38:55,430
当我们撞击其他刚体时也是如此
5285
03:38:55,430 --> 03:38:57,230
我们基本上得到了台球桌
5286
03:38:57,230 --> 03:38:58,530
所以如果你想制作那种游戏
5287
03:38:58,530 --> 03:39:00,300
你现在有了一个非常好的开始
5288
03:39:00,830 --> 03:39:02,700
我们只需要做一个练习
5289
03:39:02,700 --> 03:39:05,130
然后我们就完成了另一个非常重要的部分
5290
03:39:05,400 --> 03:39:06,900
我认为我们不必练习
5291
03:39:06,900 --> 03:39:08,530
刚体太多
5292
03:39:08,700 --> 03:39:11,170
因为它们最终并没有那么复杂
5293
03:39:11,630 --> 03:39:14,330
不过我想练习的是激光
5294
03:39:14,330 --> 03:39:15,700
这是游戏的一部分
5295
03:39:15,700 --> 03:39:16,600
我们绝对必须
5296
03:39:16,600 --> 03:39:18,830
继续工作,我希望你们能够移动激光
5297
03:39:18,830 --> 03:39:20,030
在玩家方向
5298
03:39:20,370 --> 03:39:22,030
就像我们对手榴弹所做的那样
5299
03:39:22,200 --> 03:39:23,130
现在你们大多数人
5300
03:39:23,530 --> 03:39:24,630
尝试实施这个
5301
03:39:28,200 --> 03:39:30,530
我想看看水平
5302
03:39:30,630 --> 03:39:32,370
首先在那里
5303
03:39:32,530 --> 03:39:34,230
我想摆脱手榴弹
5304
03:39:34,230 --> 03:39:36,230
因为这个一开始就不应该存在
5305
03:39:36,730 --> 03:39:38,030
现在我们可以研究激光了
5306
03:39:38,030 --> 03:39:39,500
这部分让我很恼火
5307
03:39:40,400 --> 03:39:44,200
好的,对于激光,我们必须看一些代码
5308
03:39:44,500 --> 03:39:48,300
我们正在unplayer激光功能中创建激光
5309
03:39:48,300 --> 03:39:51,030
而这个现在只有一个位置
5310
03:39:51,170 --> 03:39:54,200
除此之外我们还想要一个方向
5311
03:39:54,830 --> 03:39:58,170
我们必须在玩家内部生成这个方向
5312
03:39:58,170 --> 03:40:00,500
为此,让我们看看播放器
5313
03:40:00,800 --> 03:40:03,300
在这个 if 语句里面
5314
03:40:03,300 --> 03:40:05,400
我们正在产生激光作用
5315
03:40:05,530 --> 03:40:08,200
所以这个也需要指导
5316
03:40:08,430 --> 03:40:10,800
我将把它放在其他变量的正下方
5317
03:40:10,800 --> 03:40:12,600
但基本上你可以把它放在你想要的任何地方
5318
03:40:13,030 --> 03:40:17,230
我想再次创建一个玩家方向
5319
03:40:17,730 --> 03:40:20,500
这个玩家方向将是一个新的向量
5320
03:40:20,500 --> 03:40:24,630
为此我想获得全局鼠标位置
5321
03:40:25,200 --> 03:40:28,570
然后减去玩家当前的位置
5322
03:40:28,970 --> 03:40:29,770
所有的
5323
03:40:29,770 --> 03:40:32,770
我们还必须正常化,然后就可以开始了
5324
03:40:33,200 --> 03:40:34,800
现在要提的一件重要的事情
5325
03:40:34,800 --> 03:40:35,630
是我们现在有
5326
03:40:35,630 --> 03:40:37,770
if 语句内的玩家方向
5327
03:40:37,770 --> 03:40:40,630
以及此 if 语句中的另一个
5328
03:40:40,970 --> 03:40:43,900
哪一个有点不必要
5329
03:40:44,170 --> 03:40:45,330
我们可以简化这个
5330
03:40:45,330 --> 03:40:47,530
只需剪掉第一个
5331
03:40:47,530 --> 03:40:50,430
然后将其放在 if 语句之前
5332
03:40:50,730 --> 03:40:52,900
这样我们就不再需要第二个了
5333
03:40:53,200 --> 03:40:56,970
接下来当我们发射激光信号时
5334
03:40:57,130 --> 03:40:59,970
除了这个职位我也想得到
5335
03:41:00,430 --> 03:41:04,130
玩家的方向
5336
03:41:04,370 --> 03:41:05,800
一直在顶部
5337
03:41:06,170 --> 03:41:08,800
现在当我们宣布信号时
5338
03:41:09,000 --> 03:41:10,700
我们只有立场
5339
03:41:10,930 --> 03:41:13,200
现在这一切仍然有效
5340
03:41:13,330 --> 03:41:16,330
但尽管如此你还是想在那里添加方向
5341
03:41:16,330 --> 03:41:18,000
出于一个重要原因
5342
03:41:18,930 --> 03:41:23,200
如果我最小化所有这些并返回到我的关卡场景
5343
03:41:24,730 --> 03:41:25,230
在应用程序中
5344
03:41:25,230 --> 03:41:28,700
我们有玩家并且玩家有两个信号
5345
03:41:28,700 --> 03:41:29,700
我们有手榴弹
5346
03:41:29,700 --> 03:41:32,370
这个显示了位置和方向
5347
03:41:32,730 --> 03:41:36,200
然而激光现在只有位置
5348
03:41:37,300 --> 03:41:38,730
它显示了位置
5349
03:41:38,730 --> 03:41:40,970
因为在玩家的脚本里面
5350
03:41:41,030 --> 03:41:42,570
我们只有立场
5351
03:41:43,300 --> 03:41:46,170
如果我添加方向然后保存所有这些
5352
03:41:46,770 --> 03:41:50,430
我们现在得到激光位置和方向
5353
03:41:50,630 --> 03:41:51,630
所以这使得它
5354
03:41:51,630 --> 03:41:53,930
更容易了解游戏中发生的情况
5355
03:41:54,300 --> 03:41:55,900
你可以离开这一切
5356
03:41:55,900 --> 03:41:58,170
完全空白,它仍然可以工作
5357
03:41:58,170 --> 03:42:00,430
但如果你和其他人一起工作或者
5358
03:42:00,430 --> 03:42:02,570
如果您有一段时间没有查看游戏
5359
03:42:02,570 --> 03:42:03,530
回来吧
5360
03:42:03,730 --> 03:42:06,100
这会变得非常混乱
5361
03:42:06,170 --> 03:42:07,430
在这里添加这些参数
5362
03:42:07,430 --> 03:42:09,730
确实是很好的代码文档
5363
03:42:09,970 --> 03:42:12,630
好吧,我们有激光信号
5364
03:42:12,630 --> 03:42:16,700
我们正在发出位置和方向
5365
03:42:17,000 --> 03:42:19,370
这意味着现在在关卡内
5366
03:42:19,630 --> 03:42:21,700
我们正在获取位置和方向
5367
03:42:22,000 --> 03:42:24,630
所以现在在激光器内部我们可以使用所有这些
5368
03:42:24,900 --> 03:42:27,900
对于这个,我们想要得到我们的激光
5369
03:42:27,900 --> 03:42:29,800
现在我们遇到了一些问题
5370
03:42:30,030 --> 03:42:32,900
因为对于手榴弹,所以刚体 2d
5371
03:42:33,170 --> 03:42:35,230
我们可以使用线速度
5372
03:42:35,530 --> 03:42:38,630
但对于激光来说,这样的属性不存在
5373
03:42:39,500 --> 03:42:41,200
只是为了保持一致
5374
03:42:41,300 --> 03:42:44,430
将会是一个太深的区域
5375
03:42:44,630 --> 03:42:47,200
那么我们该怎么做才能使激光以一定的速度移动呢?
5376
03:42:47,200 --> 03:42:48,600
方向好
5377
03:42:48,600 --> 03:42:49,530
我们要做的就是
5378
03:42:49,570 --> 03:42:52,730
再次得到我们的旋转度数
5379
03:42:53,130 --> 03:42:55,700
为了得到旋转度数我们所要做的就是
5380
03:42:55,700 --> 03:42:56,900
就是得到方向
5381
03:42:56,900 --> 03:43:00,030
然后使用角度方法
5382
03:43:00,570 --> 03:43:02,730
Goodo 中的任何向量都有这个方法
5383
03:43:02,730 --> 03:43:05,500
它只是将向量转换为角度
5384
03:43:05,530 --> 03:43:08,300
然而它返回的是亮度而不是度数
5385
03:43:08,330 --> 03:43:11,330
所以你可以通过以下两种方式之一进行收养
5386
03:43:11,500 --> 03:43:11,930
任何一个
5387
03:43:11,930 --> 03:43:15,000
你可以将所有这些包装在另一个函数中
5388
03:43:15,370 --> 03:43:18,800
你想要的功能叫做红色
5389
03:43:19,000 --> 03:43:21,800
下划线到下划线程度
5390
03:43:21,830 --> 03:43:22,930
或者只是 EG
5391
03:43:23,400 --> 03:43:25,630
这会将辐射度转换为度数
5392
03:43:26,100 --> 03:43:27,170
或者
5393
03:43:27,770 --> 03:43:30,500
由于旋转本身
5394
03:43:30,570 --> 03:43:34,830
正在寻找容光焕发的,这也很好用
5395
03:43:36,170 --> 03:43:38,400
但是如果我现在运行所有这些
5396
03:43:39,170 --> 03:43:40,300
我应该
5397
03:43:40,970 --> 03:43:44,370
我们得到一些有点奇怪的行为
5398
03:43:46,730 --> 03:43:48,330
所以这并不理想
5399
03:43:49,700 --> 03:43:52,630
如果我打开激光场景的原因
5400
03:43:52,770 --> 03:43:54,200
你可能已经看到了
5401
03:43:54,570 --> 03:43:55,530
默认情况下
5402
03:43:56,200 --> 03:44:00,130
0 的向量位置是这样的
5403
03:44:00,400 --> 03:44:02,370
但我们的激光指向上方
5404
03:44:02,770 --> 03:44:05,970
因为我们的方向错了90度
5405
03:44:06,000 --> 03:44:08,100
现在你可以旋转激光
5406
03:44:08,100 --> 03:44:09,300
但就我而言
5407
03:44:09,300 --> 03:44:09,600
自从
5408
03:44:09,600 --> 03:44:11,900
我想演示几种不同的方法
5409
03:44:11,900 --> 03:44:13,900
我们可以做一些不同的事情
5410
03:44:14,130 --> 03:44:16,630
回到关卡内部
5411
03:44:17,300 --> 03:44:18,800
我想扩展这一切
5412
03:44:18,830 --> 03:44:21,530
我再次想使用旋转
5413
03:44:21,600 --> 03:44:22,200
这
5414
03:44:22,200 --> 03:44:25,800
润滑脂,因为这会让数学变得更容易
5415
03:44:25,970 --> 03:44:27,370
我想转换
5416
03:44:27,930 --> 03:44:31,230
我们从方向得到的角度并将其转换
5417
03:44:32,330 --> 03:44:35,830
用红色来挖掘重新
5418
03:44:36,370 --> 03:44:39,500
就像这样我们所要做的就是加上90
5419
03:44:39,570 --> 03:44:40,830
这也可以
5420
03:44:41,230 --> 03:44:42,570
所以我们来试试这个
5421
03:44:43,230 --> 03:44:44,030
和
5422
03:44:44,770 --> 03:44:47,730
现在我们有了更好的行为
5423
03:44:47,830 --> 03:44:50,530
所以激光指向正确的方向
5424
03:44:50,700 --> 03:44:52,500
它只是没有朝着正确的方向发展
5425
03:44:52,500 --> 03:44:53,530
它总是向上移动
5426
03:44:53,730 --> 03:44:55,830
但我们确实取得了进步
5427
03:44:56,300 --> 03:44:58,730
激光总是向上移动的原因
5428
03:44:58,730 --> 03:45:00,700
让我们看一下脚本
5429
03:45:00,830 --> 03:45:03,330
我们有一个向量 2 的方向
5430
03:45:03,330 --> 03:45:05,330
这个一直在上升
5431
03:45:05,370 --> 03:45:07,830
所以我们必须改变这个向量
5432
03:45:08,430 --> 03:45:11,170
我们可以在关卡内做
5433
03:45:11,500 --> 03:45:13,430
我想要激光
5434
03:45:13,570 --> 03:45:16,200
现在一个属性是方向
5435
03:45:16,430 --> 03:45:18,630
这是我们在这里宣布的方向
5436
03:45:18,930 --> 03:45:20,330
和这个方向
5437
03:45:20,370 --> 03:45:22,130
只是一个方向
5438
03:45:22,130 --> 03:45:23,370
我们从玩家那里得到
5439
03:45:23,370 --> 03:45:25,530
所以我们通过属性得到的
5440
03:45:26,330 --> 03:45:27,700
现在
5441
03:45:28,400 --> 03:45:30,970
这感觉好多了
5442
03:45:32,330 --> 03:45:34,570
这样我们就有了激光
5443
03:45:36,030 --> 03:45:37,970
而且效果非常好
5444
03:45:37,970 --> 03:45:39,770
很酷,这样
5445
03:45:39,770 --> 03:45:40,570
我们已经涵盖了
5446
03:45:40,570 --> 03:45:42,530
古道的另一个非常重要的部分
5447
03:45:42,730 --> 03:45:43,400
在此刻
5448
03:45:43,400 --> 03:45:45,030
你至少应该具备基本的
5449
03:45:45,030 --> 03:45:47,170
了解不同物理体
5450
03:45:47,170 --> 03:45:50,570
以及如何在代码中创建场景实例
5451
03:45:50,600 --> 03:45:51,900
这对创建超级有用
5452
03:45:51,900 --> 03:45:54,000
子弹或激光或类似的东西
5453
03:45:54,370 --> 03:45:55,100
对于这部分
5454
03:45:55,100 --> 03:45:57,130
我们将涵盖一些令人惊讶的内容
5455
03:45:57,530 --> 03:45:58,570
相机
5456
03:45:59,400 --> 03:46:00,600
为此我们要做的就是
5457
03:46:00,600 --> 03:46:02,900
是给我们的播放器添加一个注释
5458
03:46:02,900 --> 03:46:04,230
然后我们就完成了
5459
03:46:04,370 --> 03:46:06,100
这里没有理论可讲
5460
03:46:06,170 --> 03:46:07,570
让我们直接跳进去
5461
03:46:08,300 --> 03:46:09,430
我们回到古多了
5462
03:46:09,570 --> 03:46:11,400
如果我运行游戏
5463
03:46:11,400 --> 03:46:12,700
你可以非常清楚地看出
5464
03:46:12,700 --> 03:46:14,730
只是没有太多空间
5465
03:46:14,730 --> 03:46:17,000
所有这一切都让人感觉非常局促
5466
03:46:17,100 --> 03:46:18,300
所以我想要拥有什么
5467
03:46:18,300 --> 03:46:20,430
是一个跟随玩家的摄像机
5468
03:46:20,430 --> 03:46:23,230
这将使我们能够真正探索这个水平
5469
03:46:24,400 --> 03:46:27,530
为此,就像古多的其他任何事情一样
5470
03:46:27,630 --> 03:46:29,930
我们必须了解另一个节点
5471
03:46:30,330 --> 03:46:32,330
该节点称为相机
5472
03:46:32,630 --> 03:46:34,500
你必须了解的第一件事
5473
03:46:34,500 --> 03:46:36,100
是它想成为孩子
5474
03:46:36,100 --> 03:46:37,700
它跟随的节点的
5475
03:46:37,770 --> 03:46:40,230
在我们的例子中是玩家
5476
03:46:40,370 --> 03:46:43,000
这意味着所选玩家的实例
5477
03:46:43,130 --> 03:46:45,900
我想添加一个 2d 相机
5478
03:46:46,600 --> 03:46:50,700
现在我们在玩家周围得到了另一个盒子
5479
03:46:51,170 --> 03:46:54,370
它是粉红色的
5480
03:46:55,000 --> 03:46:56,800
向我们展示了另一个轮廓
5481
03:46:57,030 --> 03:46:58,200
现在运行游戏
5482
03:46:59,370 --> 03:47:02,200
我们已经得到了一些非常不同的行为
5483
03:47:02,830 --> 03:47:05,170
添加摄像头就这么简单
5484
03:47:06,800 --> 03:47:08,200
然而此时
5485
03:47:08,370 --> 03:47:10,400
如果我稍微移动一下
5486
03:47:10,430 --> 03:47:12,930
你可以看到有一些奇怪的卡顿现象
5487
03:47:13,130 --> 03:47:14,530
如果你跟着
5488
03:47:14,730 --> 03:47:17,900
只是自己四处走动,感觉不太自然
5489
03:47:18,830 --> 03:47:20,370
那是因为相机 2d
5490
03:47:20,370 --> 03:47:23,000
落后于其跟随的物体
5491
03:47:23,000 --> 03:47:25,100
这不是完美的一对一动作
5492
03:47:25,100 --> 03:47:27,930
相反应该有一些平滑度
5493
03:47:28,530 --> 03:47:31,800
您在位置平滑下获得的平滑度
5494
03:47:31,800 --> 03:47:34,700
并且您基本上总是希望启用此功能
5495
03:47:34,700 --> 03:47:36,830
否则你的游戏会看起来很奇怪
5496
03:47:37,330 --> 03:47:38,800
你可以设置一个速度
5497
03:47:38,800 --> 03:47:41,900
虽然每秒 5 像素通常是您想要的
5498
03:47:42,430 --> 03:47:44,200
现在如果再谈一遍这一切
5499
03:47:44,630 --> 03:47:47,300
现在我们的游戏感觉好多了
5500
03:47:48,430 --> 03:47:51,430
如果我停止移动你就可以看到相机
5501
03:47:51,530 --> 03:47:54,200
正在非常非常快地追上玩家
5502
03:47:54,200 --> 03:47:55,600
但肯定有
5503
03:47:55,600 --> 03:47:59,030
当我们停止移动后,某种运动会摆动
5504
03:47:59,770 --> 03:48:00,500
与此
5505
03:48:00,500 --> 03:48:03,400
我们的相机看起来确实不错
5506
03:48:03,700 --> 03:48:05,900
现在你可能想做的另一件事
5507
03:48:05,900 --> 03:48:07,200
设置缩放级别
5508
03:48:07,430 --> 03:48:10,830
这告诉你这个矩形有多大
5509
03:48:11,030 --> 03:48:13,100
所以实际可见面积
5510
03:48:13,600 --> 03:48:17,230
例如我们可以将其设置为 0.6
5511
03:48:18,400 --> 03:48:21,770
现在你会看到更多的关卡
5512
03:48:23,170 --> 03:48:27,300
我想这就是我在最后一场比赛中使用的
5513
03:48:27,300 --> 03:48:28,770
所以这就是我很喜欢的
5514
03:48:29,970 --> 03:48:30,730
除此之外
5515
03:48:30,730 --> 03:48:32,230
你还有一些属性
5516
03:48:32,230 --> 03:48:33,300
你可能正在与
5517
03:48:33,300 --> 03:48:35,970
例如你可以给相机一个偏移量
5518
03:48:35,970 --> 03:48:38,730
如果我将其设置为让我们使用更大的数字
5519
03:48:38,900 --> 03:48:43,600
300像素你现在已经可以分辨出相机了
5520
03:48:44,330 --> 03:48:45,900
正在被抵消
5521
03:48:46,370 --> 03:48:49,370
300 像素
5522
03:48:50,170 --> 03:48:51,830
这在游戏中也可见
5523
03:48:51,900 --> 03:48:53,030
让我们再次解决这个问题
5524
03:48:53,030 --> 03:48:53,830
我们就这样吧
5525
03:48:54,000 --> 03:48:56,500
现在玩家总是处于顶部
5526
03:48:56,500 --> 03:48:58,900
并且物体或门仍然在那里
5527
03:48:59,800 --> 03:49:03,030
还有一些你可以使用的东西
5528
03:49:03,600 --> 03:49:06,230
但其中大多数并不是非常重要
5529
03:49:06,430 --> 03:49:08,730
我猜旋转也可能是一个属性
5530
03:49:08,730 --> 03:49:11,330
但在我们的例子中,玩家不会轮换
5531
03:49:11,530 --> 03:49:13,370
所以这一切都变得更加容易
5532
03:49:14,170 --> 03:49:16,030
您可能感兴趣的最后一个属性
5533
03:49:16,030 --> 03:49:17,030
是极限
5534
03:49:17,030 --> 03:49:20,130
这告诉你相机要走多远
5535
03:49:20,500 --> 03:49:22,770
例如,如果我设置左侧
5536
03:49:22,800 --> 03:49:25,730
现在是-1000万
5537
03:49:25,930 --> 03:49:27,530
如果我将其设置为 0
5538
03:49:28,000 --> 03:49:29,570
你已经可以在游戏中看到它了
5539
03:49:29,830 --> 03:49:34,130
现在相机不能超过左侧0像素
5540
03:49:34,800 --> 03:49:37,300
0 像素是这一边
5541
03:49:37,570 --> 03:49:39,900
我们的相机永远无法超越它
5542
03:49:41,000 --> 03:49:42,970
所以现在如果我运行游戏
5543
03:49:43,900 --> 03:49:46,330
你可以看到我们的相机永远不会走得更远
5544
03:49:46,330 --> 03:49:47,700
如果我上去你看到大门
5545
03:49:47,700 --> 03:49:49,030
你实际上可以知道发生了什么
5546
03:49:49,100 --> 03:49:51,770
所以我们的相机永远不能再向左移动
5547
03:49:51,770 --> 03:49:53,830
但我们仍然可以继续向右走
5548
03:49:55,630 --> 03:49:58,400
现在就我而言,我不想启用此功能
5549
03:49:58,500 --> 03:50:00,930
我还想将偏移量设置为 0
5550
03:50:01,830 --> 03:50:04,500
但您可能会发现这些选项很有趣
5551
03:50:05,200 --> 03:50:06,100
但除此之外
5552
03:50:06,100 --> 03:50:08,800
相机其实并没有那么复杂
5553
03:50:08,800 --> 03:50:11,370
所以你不需要了解太多
5554
03:50:12,100 --> 03:50:13,530
但在我完成这部分之前
5555
03:50:13,530 --> 03:50:15,600
我还想讲一件事
5556
03:50:15,600 --> 03:50:18,570
这就是游戏的实际大小
5557
03:50:18,970 --> 03:50:22,130
所以现在你可以看到我们有这个
5558
03:50:22,130 --> 03:50:24,370
游戏周围的蓝色轮廓
5559
03:50:24,600 --> 03:50:27,030
这告诉我们窗口有多大
5560
03:50:27,430 --> 03:50:29,300
你可以很容易地改变这一点
5561
03:50:29,570 --> 03:50:32,830
这发生在项目和项目设置内部
5562
03:50:33,030 --> 03:50:34,970
在那里你有
5563
03:50:34,970 --> 03:50:37,730
许多选项可以决定游戏的运行方式
5564
03:50:37,730 --> 03:50:38,730
在电脑上
5565
03:50:39,630 --> 03:50:42,100
您想要查看的选项在显示屏上
5566
03:50:42,100 --> 03:50:43,600
那里有一个窗口
5567
03:50:43,830 --> 03:50:48,430
现在我们的窗口大小为 1152
5568
03:50:49,300 --> 03:50:53,230
第648章 我不知道我们是如何得到这些数字的
5569
03:50:53,230 --> 03:50:55,100
但你可以很容易地改变它们
5570
03:50:55,300 --> 03:50:59,330
就我而言,我会选择 12 80 x 720
5571
03:51:00,030 --> 03:51:02,030
这些感觉像是更自然的数字
5572
03:51:02,500 --> 03:51:06,030
你还可以设置一大堆其他变量
5573
03:51:06,030 --> 03:51:08,770
但就我而言,我不会打扰太多
5574
03:51:10,000 --> 03:51:11,830
如果你有一个更大的窗户
5575
03:51:11,830 --> 03:51:13,530
你可以设置更大的数字
5576
03:51:14,130 --> 03:51:16,100
只需选择您认为最好的
5577
03:51:16,630 --> 03:51:18,800
所以有了这个集合,让我们再次运行所有这些
5578
03:51:18,900 --> 03:51:21,370
现在我们得到一个稍微大一点的窗口
5579
03:51:21,730 --> 03:51:24,330
这就是我们这部分所需要的
5580
03:51:24,500 --> 03:51:25,230
相机
5581
03:51:25,230 --> 03:51:27,700
最终是一件非常容易实现的事情
5582
03:51:28,570 --> 03:51:29,730
不过对于下一部分
5583
03:51:29,770 --> 03:51:30,570
我们将介绍
5584
03:51:30,570 --> 03:51:31,930
如何实际填写该级别
5585
03:51:31,930 --> 03:51:33,400
与看起来不错的东西
5586
03:51:33,700 --> 03:51:35,970
所以探索这个游戏实际上是有道理的
5587
03:51:36,330 --> 03:51:37,330
我会在那里见你
5588
03:51:37,930 --> 03:51:39,370
现在我们可以四处走动了
5589
03:51:39,370 --> 03:51:40,530
它正在变得有点
5590
03:51:40,530 --> 03:51:43,630
很明显我们的水平看起来不太好
5591
03:51:43,700 --> 03:51:46,200
只是因为我们没有那么多图像
5592
03:51:46,330 --> 03:51:48,200
所以我想在本节中介绍什么
5593
03:51:48,200 --> 03:51:50,630
是如何显示大量图像
5594
03:51:51,630 --> 03:51:53,030
或者更具体地说
5595
03:51:53,200 --> 03:51:56,130
我们想用图像装饰关卡
5596
03:51:56,430 --> 03:51:59,600
有几种方法可以解决这个问题
5597
03:52:00,100 --> 03:52:01,370
最简单的一个
5598
03:52:01,370 --> 03:52:02,970
你可以简单地放置
5599
03:52:02,970 --> 03:52:06,400
很多精灵,然后对它们进行相当多的修改
5600
03:52:06,630 --> 03:52:07,530
你可以这么做
5601
03:52:07,530 --> 03:52:10,700
通过更改比例或颜色值
5602
03:52:10,930 --> 03:52:12,970
这就是我想要开始的
5603
03:52:13,130 --> 03:52:15,530
虽然我已经想强调
5604
03:52:15,570 --> 03:52:17,330
或任何类型的复杂设置
5605
03:52:17,330 --> 03:52:19,970
这还不够好
5606
03:52:19,970 --> 03:52:21,630
我们将使用瓦片地图
5607
03:52:21,770 --> 03:52:23,800
我稍后会介绍
5608
03:52:24,170 --> 03:52:26,330
但现在让我们玩一些精灵
5609
03:52:26,330 --> 03:52:28,370
因为他们可以做很多事情
5610
03:52:29,300 --> 03:52:30,200
回到盖多佩
5611
03:52:30,200 --> 03:52:33,400
我们可以看到我们有一个门和一个玩家
5612
03:52:33,400 --> 03:52:35,730
这些是唯一可见的东西
5613
03:52:35,900 --> 03:52:37,130
这不是很多
5614
03:52:37,130 --> 03:52:38,230
这就是主要原因
5615
03:52:38,230 --> 03:52:40,200
为什么我们的水平看起来不太好
5616
03:52:40,770 --> 03:52:42,530
让这一切变得更漂亮
5617
03:52:42,530 --> 03:52:44,170
选择级别音符
5618
03:52:44,330 --> 03:52:46,100
我想添加另一个注释
5619
03:52:46,100 --> 03:52:48,930
现在这将是一个 2D 笔记
5620
03:52:49,700 --> 03:52:51,400
我要立即重命名
5621
03:52:51,400 --> 03:52:52,830
我们称这个为地面
5622
03:52:53,700 --> 03:52:56,770
这个地面应该低于其他一切
5623
03:52:56,770 --> 03:52:59,300
所以我把它放在门和玩家之前
5624
03:53:00,100 --> 03:53:03,370
现在这片土地将会有一个精灵
5625
03:53:03,830 --> 03:53:06,570
我也想立即重命名这个
5626
03:53:06,770 --> 03:53:08,900
我们称其为土壤
5627
03:53:10,330 --> 03:53:11,570
现在我们有了
5628
03:53:11,630 --> 03:53:13,370
我想去图形学
5629
03:53:13,370 --> 03:53:16,430
在那里我们有一个名为 ground 的文件夹
5630
03:53:16,830 --> 03:53:19,370
那里有泥土网和石头
5631
03:53:19,530 --> 03:53:21,170
石头是我想用的
5632
03:53:21,170 --> 03:53:23,430
所以我要把它拖到纹理选项卡中
5633
03:53:23,570 --> 03:53:25,800
现在我们得到了 8 个纹理
5634
03:53:26,230 --> 03:53:27,300
稍微移动了一下
5635
03:53:27,830 --> 03:53:29,000
与此
5636
03:53:29,230 --> 03:53:31,200
如果我重新开始游戏
5637
03:53:31,700 --> 03:53:34,300
这看起来已经好一点了
5638
03:53:34,430 --> 03:53:36,830
没那么多,但肯定是一个进步
5639
03:53:37,330 --> 03:53:40,800
现在主要的问题是这个纹理即将结束
5640
03:53:40,800 --> 03:53:41,770
太快了
5641
03:53:42,330 --> 03:53:43,970
所以这并不理想
5642
03:53:44,570 --> 03:53:46,100
这意味着现在我们必须弄清楚
5643
03:53:46,100 --> 03:53:47,730
如何扩展这个纹理
5644
03:53:47,830 --> 03:53:50,130
你可以做的第一件事
5645
03:53:50,130 --> 03:53:51,800
就是如果你去转型
5646
03:53:51,800 --> 03:53:53,130
看看规模
5647
03:53:53,230 --> 03:53:55,770
你可以通过 100 的效应器来缩放它
5648
03:53:56,370 --> 03:53:57,500
好吧
5649
03:53:57,500 --> 03:54:00,500
从技术上讲,你将拥有无限的纹理
5650
03:54:00,500 --> 03:54:02,300
或者至少是一个非常大的
5651
03:54:02,500 --> 03:54:04,200
但看起来真的很糟糕
5652
03:54:04,200 --> 03:54:06,370
所以这对于游戏来说是不可接受的
5653
03:54:07,630 --> 03:54:10,200
话虽这么说,但如果你缩放到某个东西
5654
03:54:10,570 --> 03:54:14,900
假设效果或 5 这看起来仍然不错
5655
03:54:17,570 --> 03:54:19,830
所以这绝对是你可以使用的东西
5656
03:54:20,200 --> 03:54:21,130
但就我而言
5657
03:54:21,130 --> 03:54:23,130
我根本不想用这个秤
5658
03:54:23,130 --> 03:54:25,100
所以我要把它设置回 1
5659
03:54:26,230 --> 03:54:29,030
相反,我想使用该区域
5660
03:54:29,100 --> 03:54:30,530
我们已经看到了这个
5661
03:54:30,530 --> 03:54:32,630
一直在本教程的开头
5662
03:54:32,800 --> 03:54:34,170
所以如果我启用它
5663
03:54:34,330 --> 03:54:37,100
默认情况下纹理将会消失
5664
03:54:37,600 --> 03:54:38,970
因为我们现在
5665
03:54:38,970 --> 03:54:40,530
使用矩形
5666
03:54:40,530 --> 03:54:41,170
有一个
5667
03:54:41,170 --> 03:54:43,630
x 和 y 位置以及宽度和高度
5668
03:54:45,170 --> 03:54:46,970
默认情况下所有这些都是零
5669
03:54:46,970 --> 03:54:49,600
所以我们没有展示任何纹理
5670
03:54:49,930 --> 03:54:52,630
但我们可以使用“编辑区域”按钮编辑该区域
5671
03:54:52,630 --> 03:54:53,430
在那里
5672
03:54:54,030 --> 03:54:57,700
我们可以选择我们想要展示的纹理
5673
03:54:57,830 --> 03:55:01,430
例如,我们可以简单地选择其中的一部分
5674
03:55:01,530 --> 03:55:03,530
在那里你可以看到游戏的内部
5675
03:55:04,100 --> 03:55:06,770
我们在游戏中得到这个纹理
5676
03:55:08,400 --> 03:55:12,030
我们还可以做的是我们可以选择更大的区域
5677
03:55:12,200 --> 03:55:14,500
让我选择一个更大的区域
5678
03:55:14,970 --> 03:55:16,570
像这样的东西
5679
03:55:17,700 --> 03:55:19,970
现在我们有
5680
03:55:20,030 --> 03:55:20,500
出色地
5681
03:55:20,500 --> 03:55:23,730
更大的纹理,但看起来绝对可怕
5682
03:55:23,930 --> 03:55:25,500
那是因为古多
5683
03:55:25,530 --> 03:55:27,830
正在拉伸边界像素
5684
03:55:28,430 --> 03:55:30,530
这不是一个好行为
5685
03:55:31,030 --> 03:55:32,230
不过我们可以改变这一点
5686
03:55:32,230 --> 03:55:34,000
我们这样做
5687
03:55:35,000 --> 03:55:38,300
纹理,我们有过滤器和重复
5688
03:55:38,830 --> 03:55:41,930
过滤器会告诉您何时缩放纹理
5689
03:55:41,930 --> 03:55:43,430
规模将如何扩大
5690
03:55:43,730 --> 03:55:45,570
在我们的例子中我们不会触及
5691
03:55:45,770 --> 03:55:47,430
重复是我们关心的
5692
03:55:47,800 --> 03:55:51,330
因为在那里我们已经禁用和启用了继承
5693
03:55:51,530 --> 03:55:55,330
启用是我想要的,这看起来好多了
5694
03:55:56,900 --> 03:56:00,500
这样我们就得到了可以使用的实际纹理
5695
03:56:01,170 --> 03:56:02,970
基本上无限
5696
03:56:03,730 --> 03:56:04,970
让我再运行一次
5697
03:56:05,170 --> 03:56:07,800
如果你仔细观察
5698
03:56:07,800 --> 03:56:11,630
所以让我关闭游戏,如果我放大
5699
03:56:13,630 --> 03:56:17,330
你可以看出我们有重复标记
5700
03:56:17,770 --> 03:56:19,700
都很好
5701
03:56:19,700 --> 03:56:22,400
对于我们的游戏来说它们可能不会被注意到
5702
03:56:23,000 --> 03:56:24,200
并且在实际的游戏中
5703
03:56:24,200 --> 03:56:25,230
你可以简单地放置
5704
03:56:25,230 --> 03:56:26,770
除此之外还有其他一些物体
5705
03:56:26,770 --> 03:56:28,200
然后不用担心
5706
03:56:28,630 --> 03:56:31,230
而且如果你缩小它几乎不会被注意到
5707
03:56:31,230 --> 03:56:32,970
所以这对于游戏来说完全没问题
5708
03:56:33,430 --> 03:56:34,800
那将是
5709
03:56:35,000 --> 03:56:38,370
第一种方式,你可以与你的
5710
03:56:38,500 --> 03:56:40,200
级别以添加更多图像
5711
03:56:40,200 --> 03:56:41,830
这是一个非常好的开始
5712
03:56:41,830 --> 03:56:42,370
所以现在
5713
03:56:42,370 --> 03:56:44,630
至少我们有一些背景
5714
03:56:45,300 --> 03:56:47,600
虽然我确实想补充一点
5715
03:56:48,430 --> 03:56:51,200
所以选择地面后我要添加
5716
03:56:51,300 --> 03:56:52,530
另一个精灵笔记
5717
03:56:53,300 --> 03:56:57,770
我将这个精灵笔记称为装饰
5718
03:56:58,500 --> 03:57:01,700
我们从贴花中获得的纹理
5719
03:57:01,700 --> 03:57:04,600
那里有一块泥土
5720
03:57:04,930 --> 03:57:06,830
我想将其拖到纹理中
5721
03:57:06,930 --> 03:57:10,000
现在我们得到这样的东西
5722
03:57:11,300 --> 03:57:15,300
这只是一个显示出一些污垢的纹理
5723
03:57:15,300 --> 03:57:16,600
我认为这很简单
5724
03:57:17,100 --> 03:57:18,570
而这个并不是真的
5725
03:57:18,570 --> 03:57:20,700
适合我们现在的背景
5726
03:57:20,830 --> 03:57:22,530
所以如果你在游戏中查看它
5727
03:57:22,630 --> 03:57:25,430
我想这在一定程度上是合适的
5728
03:57:25,430 --> 03:57:27,030
但可能会更好
5729
03:57:28,100 --> 03:57:29,930
让这种事情看起来更好
5730
03:57:30,130 --> 03:57:31,930
与所选择的装饰
5731
03:57:32,100 --> 03:57:33,830
你想要去可见度
5732
03:57:33,970 --> 03:57:35,630
因为在那里你可以看到
5733
03:57:35,630 --> 03:57:36,930
这个应该是显而易见的
5734
03:57:37,100 --> 03:57:39,830
但随后你就可以进行调节和自我调节
5735
03:57:40,300 --> 03:57:43,700
默认情况下它们显示白色
5736
03:57:44,370 --> 03:57:47,970
这个改变了精灵纹理的颜色
5737
03:57:48,170 --> 03:57:50,030
例如如果我改变它
5738
03:57:51,370 --> 03:57:55,100
就像这样你可以看到我们得到了一些其他颜色
5739
03:57:56,600 --> 03:57:58,330
您还可以更改透明度
5740
03:57:58,330 --> 03:58:00,900
然后让它消失或重新出现
5741
03:58:02,330 --> 03:58:03,630
就我而言
5742
03:58:03,630 --> 03:58:06,970
我们可以让这一切变得更加橙色
5743
03:58:09,130 --> 03:58:09,530
虽然
5744
03:58:09,530 --> 03:58:11,630
你必须花很多时间来解决这个问题
5745
03:58:11,630 --> 03:58:13,500
让它看起来非常合适
5746
03:58:13,500 --> 03:58:16,330
我只是没有时间学习教程
5747
03:58:16,530 --> 03:58:19,200
让我更粗略地做一下
5748
03:58:19,200 --> 03:58:21,930
我只是想把它洗掉,这样颜色更合适
5749
03:58:24,400 --> 03:58:25,600
我猜这个
5750
03:58:26,030 --> 03:58:27,400
稍微好一点
5751
03:58:28,530 --> 03:58:30,170
这当然是一个进步
5752
03:58:30,170 --> 03:58:32,570
所以我对此相当满意
5753
03:58:33,700 --> 03:58:34,970
您可能还想知道
5754
03:58:34,970 --> 03:58:37,200
为什么要进行干调节和自调节
5755
03:58:37,400 --> 03:58:39,030
两者有什么区别
5756
03:58:39,300 --> 03:58:40,770
如果你已经超过了他们
5757
03:58:40,770 --> 03:58:42,900
你已经可以得到答案了
5758
03:58:43,500 --> 03:58:44,630
如果你看一下调制
5759
03:58:44,630 --> 03:58:47,300
我们将颜色应用于此画布项目
5760
03:58:47,830 --> 03:58:49,200
这个应该是很明显的
5761
03:58:49,200 --> 03:58:51,000
接下来是更重要的部分
5762
03:58:51,000 --> 03:58:54,400
也就是说这个属性确实会影响子笔记
5763
03:58:55,170 --> 03:58:58,330
与自调节不同,自调节仅影响音符本身
5764
03:58:58,570 --> 03:59:01,800
这基本上意味着如果这个注释有子项
5765
03:59:01,930 --> 03:59:03,830
他们也会受到调制的影响
5766
03:59:03,970 --> 03:59:07,000
然而自调节仅影响音符本身
5767
03:59:07,100 --> 03:59:09,970
这意味着如果他们是孩子,他们就会被忽视
5768
03:59:10,830 --> 03:59:12,570
这是两者之间唯一的区别
5769
03:59:13,400 --> 03:59:15,200
很酷,而且这样
5770
03:59:15,600 --> 03:59:18,500
我们还有更多升级
5771
03:59:18,600 --> 03:59:20,230
我想你还可以做什么
5772
03:59:20,230 --> 03:59:22,030
是不是有很多苔藓
5773
03:59:22,030 --> 03:59:24,200
你可以把它拖到场景中
5774
03:59:24,200 --> 03:59:25,300
这么说吧
5775
03:59:25,370 --> 03:59:26,200
像这样
5776
03:59:27,170 --> 03:59:29,600
像这样然后放大
5777
03:59:30,730 --> 03:59:33,830
我们只得到了几张苔藓图像
5778
03:59:33,830 --> 03:59:35,400
和所有这些苔藓图像
5779
03:59:35,400 --> 03:59:37,600
我想要在地下
5780
03:59:38,300 --> 03:59:40,100
这样我们就能让一切井井有条
5781
03:59:40,100 --> 03:59:42,370
这对于更复杂的游戏来说非常重要
5782
03:59:43,200 --> 03:59:44,030
好吧
5783
03:59:44,030 --> 03:59:46,930
这些再次只是您可以移动的图像
5784
03:59:46,930 --> 03:59:48,370
他们做的不多
5785
03:59:49,230 --> 03:59:53,000
一切就绪后我们就可以开始玩游戏了
5786
03:59:53,000 --> 03:59:55,570
在那里我们得到越来越多的细节
5787
03:59:57,030 --> 03:59:58,170
对于实际游戏
5788
03:59:58,170 --> 04:00:01,300
你基本上想继续添加更多图像
5789
04:00:01,300 --> 04:00:03,130
然后闪出游戏
5790
04:00:03,300 --> 04:00:05,800
你拥有的越多,放置它们的效果就越好
5791
04:00:05,830 --> 04:00:07,530
你的游戏看起来就越好
5792
04:00:08,100 --> 04:00:10,770
虽然这种事情确实很费时间
5793
04:00:10,770 --> 04:00:13,100
所以如果你想要一款非常好看的游戏
5794
04:00:13,100 --> 04:00:14,800
你将不得不花费很多时间
5795
04:00:14,800 --> 04:00:16,300
使用这些精灵
5796
04:00:16,800 --> 04:00:18,630
就我而言,虽然我对此感到满意
5797
04:00:18,630 --> 04:00:21,700
我认为所有这些都相当简单
5798
04:00:21,700 --> 04:00:23,170
所以我们不需要练习
5799
04:00:23,600 --> 04:00:25,770
相反,有一些我真正想涵盖的内容
5800
04:00:25,770 --> 04:00:27,630
哪个更重要
5801
04:00:27,970 --> 04:00:30,700
这个主题将是瓦片地图
5802
04:00:31,230 --> 04:00:34,430
为了解释他们在做什么,让我给你看一张图片
5803
04:00:34,630 --> 04:00:36,770
这里有几堵墙
5804
04:00:37,400 --> 04:00:41,600
瓦片地图将这些区域划分为某些区域
5805
04:00:41,970 --> 04:00:43,300
你可以自己设置尺寸
5806
04:00:43,300 --> 04:00:45,300
当你设计艺术品时
5807
04:00:45,300 --> 04:00:47,730
你想记住这种网格
5808
04:00:48,370 --> 04:00:50,230
一旦我们有了这种网格
5809
04:00:50,370 --> 04:00:52,230
我们可以从中挑选物品
5810
04:00:52,230 --> 04:00:54,370
然后将它们放置在某个位置
5811
04:00:54,530 --> 04:00:56,770
例如我们可以做这样的东西
5812
04:00:57,030 --> 04:00:59,570
我们拍摄墙壁的特定部分
5813
04:00:59,570 --> 04:01:01,700
例如我们从
5814
04:01:02,170 --> 04:01:05,230
这部分并将其放在左上角
5815
04:01:05,970 --> 04:01:08,600
然后我们再放置一个位这个数字 6
5816
04:01:08,600 --> 04:01:09,770
并把它放在那里
5817
04:01:10,130 --> 04:01:14,430
接下来我们将数字 7 放在明智的位置
5818
04:01:14,570 --> 04:01:17,600
这样我们就可以创建更复杂的图像
5819
04:01:18,170 --> 04:01:19,230
与该系统
5820
04:01:19,230 --> 04:01:22,730
你可以创建非常非常非常复杂的关卡
5821
04:01:22,730 --> 04:01:25,400
并让一切井井有条
5822
04:01:25,400 --> 04:01:26,370
并且
5823
04:01:26,370 --> 04:01:29,170
它允许您非常精确地放置元素
5824
04:01:29,830 --> 04:01:30,830
也稍后
5825
04:01:30,830 --> 04:01:32,570
你可以添加一些东西,比如碰撞
5826
04:01:32,570 --> 04:01:34,300
或不同的可见层
5827
04:01:34,300 --> 04:01:35,730
我也将介绍一些内容
5828
04:01:35,970 --> 04:01:38,130
这应该涵盖基础知识
5829
04:01:38,130 --> 04:01:41,330
现在在我们实践这一切之前
5830
04:01:41,330 --> 04:01:45,130
我想介绍命名方面的基础知识
5831
04:01:45,570 --> 04:01:47,930
最重要的部分是瓷砖组
5832
04:01:47,970 --> 04:01:49,700
这只是一个图形
5833
04:01:49,700 --> 04:01:52,630
我们将其分成单独的部分
5834
04:01:52,970 --> 04:01:54,370
或者更具体地说
5835
04:01:54,500 --> 04:01:57,400
每个单独的部分称为图块
5836
04:01:57,830 --> 04:02:00,530
这意味着图块是单个图形
5837
04:02:00,700 --> 04:02:02,170
然后我们有一个图块集
5838
04:02:02,170 --> 04:02:04,830
这是瓷砖的组合
5839
04:02:05,330 --> 04:02:07,030
最后古道具体
5840
04:02:07,030 --> 04:02:08,800
我们有一张瓷砖地图
5841
04:02:08,800 --> 04:02:12,230
这是一个组织图块集的 Goodau 节点
5842
04:02:12,230 --> 04:02:14,030
它可以包含一个
5843
04:02:14,030 --> 04:02:15,770
但它也可以包含多个
5844
04:02:16,130 --> 04:02:18,300
瓦片地图和goodau相当强大
5845
04:02:18,300 --> 04:02:20,600
所以我会花很多时间在他们身上
5846
04:02:21,130 --> 04:02:22,500
但所有这些都涵盖了
5847
04:02:22,500 --> 04:02:24,130
让我们进入编辑器
5848
04:02:24,130 --> 04:02:26,500
让我们在实践中看看这一切
5849
04:02:27,100 --> 04:02:28,000
回到谷歌
5850
04:02:28,100 --> 04:02:29,800
我想添加另一个节点
5851
04:02:29,800 --> 04:02:32,900
我想将它作为子节点添加到地面节点
5852
04:02:32,970 --> 04:02:37,430
所以用 Ctrl 或 CMD a 我想添加瓦片地图
5853
04:02:38,130 --> 04:02:41,370
如果我补充说游戏中不会有任何改变
5854
04:02:41,530 --> 04:02:44,970
但在编辑器内部我们现在得到了一个平铺地图
5855
04:02:45,230 --> 04:02:46,770
这个包含几个选项卡
5856
04:02:46,770 --> 04:02:49,030
我们有瓷砖图案和地形
5857
04:02:49,200 --> 04:02:51,300
虽然现在全都是空的
5858
04:02:51,300 --> 04:02:53,130
所以我们不能使用其中任何一个
5859
04:02:54,130 --> 04:02:55,570
使某事发挥作用
5860
04:02:55,570 --> 04:02:58,130
我们必须看检查器的右侧
5861
04:02:58,130 --> 04:03:00,200
有一套瓷砖
5862
04:03:00,730 --> 04:03:02,430
现在这个是空的
5863
04:03:02,430 --> 04:03:04,030
并创建一个新的图块集
5864
04:03:04,030 --> 04:03:06,970
我们必须点击空白,然后点击新的图块集
5865
04:03:07,970 --> 04:03:11,200
如果我点击它,不会有太大改变
5866
04:03:11,370 --> 04:03:12,600
虽然在底部
5867
04:03:12,600 --> 04:03:15,370
我们现在有一个图块集和一个图块地图
5868
04:03:16,330 --> 04:03:18,300
两者之间的基本分离
5869
04:03:18,300 --> 04:03:22,330
瓦片地图让我们可以使用瓦片地图
5870
04:03:22,330 --> 04:03:24,200
绘制游戏内的东西
5871
04:03:24,500 --> 04:03:27,700
而图块集包含图形,让我们
5872
04:03:27,700 --> 04:03:31,330
编辑它们,例如我们可以在那里重命名
5873
04:03:31,330 --> 04:03:34,200
或者我们可以添加更多的物理行为
5874
04:03:34,500 --> 04:03:36,030
我稍后会介绍这一点
5875
04:03:36,370 --> 04:03:37,300
首先虽然
5876
04:03:37,730 --> 04:03:40,200
我想再次点击图块集
5877
04:03:40,200 --> 04:03:41,500
所以在检查员内部
5878
04:03:41,500 --> 04:03:43,500
我想点击这个图块集
5879
04:03:43,800 --> 04:03:44,430
因为在那里
5880
04:03:44,430 --> 04:03:47,100
我们还有一些非常重要的选择
5881
04:03:47,430 --> 04:03:50,730
瓷砖形状和瓷砖尺寸是非常重要的部分
5882
04:03:50,970 --> 04:03:53,100
现在的瓷砖形状是正方形
5883
04:03:54,370 --> 04:03:57,000
尽管除此之外我们还可以有等距
5884
04:03:57,100 --> 04:03:58,970
有偏移正方形和六边形
5885
04:03:59,200 --> 04:04:02,430
在我们的例子中,我们想要一个正方形
5886
04:04:02,730 --> 04:04:06,200
以及我们在图块大小中设置的正方形大小
5887
04:04:06,400 --> 04:04:09,830
默认情况下,此尺寸为 16 x 16 像素
5888
04:04:10,000 --> 04:04:11,500
虽然在我们的例子中
5889
04:04:11,500 --> 04:04:15,230
我想要 390 x 390 的尺寸
5890
04:04:15,830 --> 04:04:17,630
没有通用的瓷砖尺寸
5891
04:04:17,630 --> 04:04:19,000
这总是取决于
5892
04:04:19,000 --> 04:04:21,030
您使用的是什么类型的图形
5893
04:04:21,530 --> 04:04:23,130
也选择了这些数字
5894
04:04:23,130 --> 04:04:26,570
我们现在可以在游戏中看到某种网格
5895
04:04:26,600 --> 04:04:28,630
虽然这绝对有帮助
5896
04:04:29,630 --> 04:04:30,930
尽管在我们继续之前
5897
04:04:30,930 --> 04:04:33,300
让我快速解释一下这些数字的含义
5898
04:04:33,530 --> 04:04:34,800
这是之前的幻灯片
5899
04:04:34,800 --> 04:04:37,430
我们需要设置两个属性
5900
04:04:37,570 --> 04:04:40,630
第一个是每块瓷砖的形状
5901
04:04:40,770 --> 04:04:43,230
现在这是一个正方形
5902
04:04:43,530 --> 04:04:45,830
但它不一定必须是正方形
5903
04:04:45,970 --> 04:04:48,230
例如我们也可以有一个六边形
5904
04:04:48,230 --> 04:04:50,230
那么瓷砖就会像这样
5905
04:04:50,230 --> 04:04:53,430
如果我能画出这个看起来还算不错
5906
04:04:53,430 --> 04:04:54,630
但我希望你明白
5907
04:04:55,730 --> 04:04:57,700
我们必须努力的另一个属性
5908
04:04:57,700 --> 04:04:59,700
是宽度和
5909
04:04:59,700 --> 04:05:02,570
每块瓷砖的高度
5910
04:05:02,900 --> 04:05:06,800
默认情况下,Godo 为 16 x 16
5911
04:05:07,370 --> 04:05:15,530
但在我们的例子中,我们选择 390 x 390
5912
04:05:17,000 --> 04:05:20,170
这样瓷砖与图形完美对齐
5913
04:05:20,170 --> 04:05:22,900
这设置了每个图块的大小
5914
04:05:22,930 --> 04:05:23,970
所以如果你有一个图形
5915
04:05:23,970 --> 04:05:25,630
你不知道尺寸是多少
5916
04:05:25,630 --> 04:05:27,830
你确实想尝试一下这个
5917
04:05:28,170 --> 04:05:30,430
如果尺寸或形状不一致
5918
04:05:30,600 --> 04:05:32,400
这些都不会正常工作
5919
04:05:32,600 --> 04:05:35,000
这样我们就拥有了开始所需的一切
5920
04:05:35,000 --> 04:05:36,900
这样我就可以再次最小化图块集
5921
04:05:37,030 --> 04:05:38,600
如果我也点击它
5922
04:05:38,600 --> 04:05:41,600
我们现在正在编辑器内获取图块集
5923
04:05:41,900 --> 04:05:43,130
本质上有什么好处
5924
04:05:43,130 --> 04:05:46,000
谁想要的是我们将一个图形拖入
5925
04:05:46,000 --> 04:05:47,900
这张桌子的东西在这里
5926
04:05:48,230 --> 04:05:50,300
我们从图形中得到的图形
5927
04:05:50,300 --> 04:05:52,530
在那里我们有瓷砖组
5928
04:05:52,630 --> 04:05:55,170
我们有一些不同的瓷砖组
5929
04:05:55,430 --> 04:05:57,230
您在幻灯片中看到的那个叫做
5930
04:05:57,230 --> 04:05:58,430
外墙
5931
04:05:58,430 --> 04:06:01,530
我想像这样拖到图块集中
5932
04:06:02,030 --> 04:06:04,330
然后我们就可以看到图形了
5933
04:06:04,730 --> 04:06:07,900
首先,戈多给我们传达了一个信息
5934
04:06:08,300 --> 04:06:09,200
如果我扩展这个
5935
04:06:09,200 --> 04:06:09,700
它说
5936
04:06:09,700 --> 04:06:12,800
如何在非透明纹理区域创建图块
5937
04:06:13,300 --> 04:06:15,100
基本上 Godo 想做的事
5938
04:06:15,130 --> 04:06:17,770
就是在所有的tiles中创建一个tile
5939
04:06:17,770 --> 04:06:19,730
我们有某种图形
5940
04:06:20,330 --> 04:06:23,300
我确实想要这样做,所以我要单击“是”
5941
04:06:23,770 --> 04:06:24,630
与此
5942
04:06:24,630 --> 04:06:27,930
让我通过单击图标来扩展此字段
5943
04:06:28,430 --> 04:06:31,370
我们现在得到一个可选择的图形
5944
04:06:31,400 --> 04:06:33,430
在所有有图形的图块中
5945
04:06:33,430 --> 04:06:35,530
所以底部的那两个没有任何东西
5946
04:06:35,530 --> 04:06:37,830
所以我必须点击它们才能激活它们
5947
04:06:38,200 --> 04:06:40,970
如果我右键单击它们,我可以再次删除它们
5948
04:06:41,000 --> 04:06:42,430
这会取消选择它们
5949
04:06:42,800 --> 04:06:44,000
我想要什么行为
5950
04:06:44,000 --> 04:06:45,900
因为那两块瓷砖将毫无用处
5951
04:06:45,900 --> 04:06:46,830
我不需要它们
5952
04:06:47,530 --> 04:06:52,030
现在我们有一个图块集和这个图块集了
5953
04:06:52,170 --> 04:06:54,170
我们可以改变这个
5954
04:06:54,170 --> 04:06:56,630
例如我们可以在这个领域内做
5955
04:06:56,630 --> 04:06:59,000
例如我们可以更改名称
5956
04:06:59,570 --> 04:07:01,730
现在的名称是文件的名称
5957
04:07:01,730 --> 04:07:02,970
这并不理想
5958
04:07:03,030 --> 04:07:05,900
所以让我将其重命名为墙壁
5959
04:07:05,930 --> 04:07:06,930
看起来好一点了
5960
04:07:08,530 --> 04:07:11,200
您还可以更改边距或分隔
5961
04:07:11,370 --> 04:07:13,730
让我将间隔更改为 50
5962
04:07:13,970 --> 04:07:15,030
你可以看出
5963
04:07:15,030 --> 04:07:17,770
它们之间有 50 像素的间隙
5964
04:07:18,030 --> 04:07:20,500
这不是我想要的
5965
04:07:20,930 --> 04:07:22,770
但如果你有某种图形
5966
04:07:22,770 --> 04:07:24,400
当您不知道瓷砖尺寸时
5967
04:07:24,400 --> 04:07:26,600
你确实很想和他们一起玩
5968
04:07:27,970 --> 04:07:31,030
如果您查看顶部,您也可以选择图块
5969
04:07:31,370 --> 04:07:34,830
或者如果我点击选择我们会得到更多信息
5970
04:07:34,830 --> 04:07:36,570
例如我们可以添加一个动画
5971
04:07:36,600 --> 04:07:38,100
我们可以改变渲染
5972
04:07:38,130 --> 04:07:40,730
但我不会做任何这些事情
5973
04:07:41,300 --> 04:07:43,570
不过我稍后要做什么
5974
04:07:43,570 --> 04:07:44,830
是绘画选项卡
5975
04:07:45,000 --> 04:07:47,130
在那里我们可以绘制属性
5976
04:07:47,330 --> 04:07:51,700
我们可以绘制的属性非常多样化
5977
04:07:51,800 --> 04:07:52,970
例如稍后
5978
04:07:53,100 --> 04:07:55,000
我们要添加一个物理层
5979
04:07:55,370 --> 04:07:56,370
这是在告诉古多
5980
04:07:56,370 --> 04:07:57,930
我们想要与之发生碰撞
5981
04:07:57,930 --> 04:07:59,130
所有这些精灵
5982
04:07:59,130 --> 04:08:00,400
但这会在以后发生
5983
04:08:00,400 --> 04:08:02,230
现在在设置内部
5984
04:08:02,430 --> 04:08:04,100
因为我改变了属性
5985
04:08:04,100 --> 04:08:05,730
其中一些图块未被选择
5986
04:08:05,730 --> 04:08:07,200
所以我想点击它们
5987
04:08:07,200 --> 04:08:08,700
让它们再次可用
5988
04:08:09,170 --> 04:08:12,330
这样我就可以在编辑器中使用所有这些
5989
04:08:13,700 --> 04:08:14,930
很好
5990
04:08:14,970 --> 04:08:16,370
我可以最小化这个选项卡
5991
04:08:16,370 --> 04:08:18,500
再次单击右下角的图标
5992
04:08:18,770 --> 04:08:21,230
现在选择了平铺地图
5993
04:08:22,400 --> 04:08:24,900
我所要做的就是选择这些图块之一
5994
04:08:24,900 --> 04:08:26,000
然后点击关卡
5995
04:08:26,100 --> 04:08:29,930
现在我可以画这些瓷砖了
5996
04:08:31,500 --> 04:08:33,230
例如创建一堵墙
5997
04:08:33,430 --> 04:08:35,430
我可以让它变得更复杂
5998
04:08:35,500 --> 04:08:38,300
并建造一堵更大的墙
5999
04:08:38,770 --> 04:08:40,430
它有一个角
6000
04:08:41,200 --> 04:08:42,800
像这样的东西
6001
04:08:45,930 --> 04:08:48,030
这样我们就有了一堵墙
6002
04:08:48,230 --> 04:08:49,400
我现在可以运行游戏了
6003
04:08:49,770 --> 04:08:51,600
我们可以在游戏中看到墙
6004
04:08:51,630 --> 04:08:52,800
这看起来真的很好
6005
04:08:54,800 --> 04:08:57,700
所以我对这个很满意
6006
04:08:59,230 --> 04:09:02,330
虽然实际的墙我不想有这样的
6007
04:09:02,570 --> 04:09:05,000
所以我想删除它的图块
6008
04:09:05,300 --> 04:09:07,530
我只需右键单击图块即可
6009
04:09:07,530 --> 04:09:09,000
然后它就被删除了
6010
04:09:11,100 --> 04:09:12,970
而是我现在想做的
6011
04:09:13,030 --> 04:09:15,130
因为玩家不应该参与其中
6012
04:09:15,130 --> 04:09:16,330
后面的区域
6013
04:09:16,800 --> 04:09:18,530
将要建造一堵墙
6014
04:09:19,530 --> 04:09:23,630
我们在这里粗略地说一下,然后四处走动
6015
04:09:25,130 --> 04:09:26,930
我想我们可以在这里再放一个
6016
04:09:26,930 --> 04:09:29,170
然后在另一边
6017
04:09:30,330 --> 04:09:32,230
我们可以建一堵墙
6018
04:09:32,330 --> 04:09:34,000
像这样的东西
6019
04:09:34,400 --> 04:09:35,900
因为玩家不会看到
6020
04:09:35,900 --> 04:09:37,830
无论如何这部分都在这里
6021
04:09:37,970 --> 04:09:39,000
我们不必太担心
6022
04:09:39,000 --> 04:09:40,370
关于图形的样子
6023
04:09:41,000 --> 04:09:45,130
所以我想要多几堵墙
6024
04:09:46,630 --> 04:09:48,570
你肯定想玩玩这个
6025
04:09:48,570 --> 04:09:50,370
并花一些时间在上面
6026
04:09:50,730 --> 04:09:53,030
但这对于教程来说完全没问题
6027
04:09:53,130 --> 04:09:54,570
现在让我们再次运行这个
6028
04:09:56,570 --> 04:09:59,600
现在我们看到了一堵墙
6029
04:10:00,300 --> 04:10:02,330
现在差距太大了
6030
04:10:02,330 --> 04:10:03,770
所以我们必须努力解决这个问题
6031
04:10:04,030 --> 04:10:07,170
我想稍后我可以添加例如
6032
04:10:07,170 --> 04:10:08,800
那里有另一种物体
6033
04:10:09,030 --> 04:10:11,630
但墙在其他方面工作得很好
6034
04:10:12,500 --> 04:10:15,830
这涵盖了瓦片地图的绝对基础知识
6035
04:10:16,000 --> 04:10:18,730
话虽这么说,但瓷砖地图确实很强大
6036
04:10:18,730 --> 04:10:20,930
所以还有很多内容需要介绍
6037
04:10:21,370 --> 04:10:21,930
我猜
6038
04:10:21,930 --> 04:10:24,970
我想从选择的图块集开始
6039
04:10:25,100 --> 04:10:27,100
我想添加另一个图块集
6040
04:10:27,100 --> 04:10:28,370
现在我们有墙
6041
04:10:28,370 --> 04:10:30,600
除此之外我想要有土壤
6042
04:10:30,600 --> 04:10:32,600
所以我也想直接在那里
6043
04:10:33,130 --> 04:10:35,330
然后古多再次问我们
6044
04:10:35,630 --> 04:10:37,570
你想对图块进行自动装饰吗
6045
04:10:37,570 --> 04:10:39,100
我确实想做
6046
04:10:39,400 --> 04:10:41,630
现在我们有了第二组图块
6047
04:10:42,300 --> 04:10:44,030
我也想重命名这个
6048
04:10:44,030 --> 04:10:45,500
我们把它命名为土壤
6049
04:10:46,130 --> 04:10:48,430
这就是我们在这里要做的全部事情
6050
04:10:48,430 --> 04:10:49,730
没有那么多了
6051
04:10:49,730 --> 04:10:51,970
这个瓷砖套装非常简单
6052
04:10:51,970 --> 04:10:54,970
所以我们基本上只有一些污垢纹理
6053
04:10:55,970 --> 04:10:58,700
我也可以在平铺地图内部使用这些
6054
04:10:58,700 --> 04:11:01,030
所以现在除了墙之外我们还有土壤
6055
04:11:01,030 --> 04:11:04,400
我也可以将这种土壤放在地图上就好
6056
04:11:07,170 --> 04:11:09,730
所以这个就按预期工作了
6057
04:11:10,000 --> 04:11:12,100
但我们现在确实有一个问题
6058
04:11:12,100 --> 04:11:13,930
如果我放置土砖
6059
04:11:14,300 --> 04:11:16,230
以同样的方式我有墙
6060
04:11:16,230 --> 04:11:18,600
我们可以看到我们正在删除墙
6061
04:11:18,700 --> 04:11:20,770
这不是有意的
6062
04:11:21,500 --> 04:11:22,900
所以让我撤消它
6063
04:11:23,400 --> 04:11:24,930
而是我想要的
6064
04:11:25,000 --> 04:11:29,030
就是让这些土砖始终位于墙壁下方
6065
04:11:29,030 --> 04:11:32,300
为了实现这一点,我必须使用图层
6066
04:11:32,830 --> 04:11:35,800
所以在图块地图上我们有图层
6067
04:11:38,000 --> 04:11:40,570
现在我们只有一个层
6068
04:11:40,800 --> 04:11:43,200
我想立即给出一个名字
6069
04:11:43,230 --> 04:11:45,930
我们称其为墙壁吧
6070
04:11:46,030 --> 04:11:48,130
如果我在这里输入一个名字
6071
04:11:48,130 --> 04:11:51,930
您还可以看到我们在此选项卡中也有墙
6072
04:11:52,200 --> 04:11:54,500
这非常重要,请记住这一点
6073
04:11:55,370 --> 04:11:57,530
你还可以做的是添加另一个元素
6074
04:11:57,530 --> 04:11:58,800
这就是我想做的
6075
04:11:59,100 --> 04:12:02,530
因为除了墙我还想要土壤
6076
04:12:02,530 --> 04:12:04,800
或地面或任何你想命名的东西
6077
04:12:06,030 --> 04:12:08,230
这样我们就有了两层
6078
04:12:08,700 --> 04:12:11,300
这两层的顺序非常重要
6079
04:12:11,730 --> 04:12:13,370
以先到的层为准
6080
04:12:13,570 --> 04:12:15,730
将位于另一层下方
6081
04:12:15,770 --> 04:12:16,800
这很好用
6082
04:12:16,800 --> 04:12:18,930
就像我们在节点上看到的那样
6083
04:12:19,530 --> 04:12:22,330
所以在我们的例子中,我们现在的行为是错误的
6084
04:12:22,430 --> 04:12:25,100
土壤在墙壁顶部的地方
6085
04:12:25,100 --> 04:12:26,700
你可以很容易地改变这一点
6086
04:12:26,700 --> 04:12:28,730
你所要做的就是选择
6087
04:12:28,930 --> 04:12:30,400
左边这个图标
6088
04:12:30,400 --> 04:12:31,330
三行
6089
04:12:31,330 --> 04:12:33,370
然后将其移动到您想要的位置
6090
04:12:33,500 --> 04:12:35,930
所以现在我们有了墙下面的土壤
6091
04:12:36,530 --> 04:12:37,430
这意味着现在
6092
04:12:37,430 --> 04:12:40,430
无论我们在土壤层内放置什么
6093
04:12:40,430 --> 04:12:42,500
将会在墙下面
6094
04:12:42,600 --> 04:12:45,600
以及您使用此选项卡选择的这些图层
6095
04:12:45,600 --> 04:12:47,930
我们有土壤,有墙壁
6096
04:12:47,930 --> 04:12:49,570
如果你选择其中之一
6097
04:12:49,600 --> 04:12:50,100
现在
6098
04:12:50,100 --> 04:12:53,230
我们所有的瓷砖都在墙层的内部
6099
04:12:53,430 --> 04:12:57,030
所以从这里我想去掉所有的土壤
6100
04:12:58,630 --> 04:12:59,700
这意味着此时
6101
04:12:59,700 --> 04:13:02,430
我这一层只有墙
6102
04:13:02,730 --> 04:13:04,700
但如果我选择土壤
6103
04:13:04,900 --> 04:13:07,700
这些墙壁变得更加透明
6104
04:13:08,430 --> 04:13:10,030
这向我表明
6105
04:13:10,100 --> 04:13:12,530
我们当前层中没有它们
6106
04:13:12,530 --> 04:13:15,430
相反,我可以做什么,例如
6107
04:13:15,930 --> 04:13:17,500
落在他们下面
6108
04:13:18,030 --> 04:13:21,430
几块带土的瓷砖和
6109
04:13:22,600 --> 04:13:24,630
让我这样做
6110
04:13:24,630 --> 04:13:27,100
所以这一切看起来还不错
6111
04:13:27,830 --> 04:13:30,730
现在如果我再次选择墙壁
6112
04:13:30,830 --> 04:13:32,430
我们可以看到土壤
6113
04:13:32,430 --> 04:13:33,530
这有点难看
6114
04:13:33,530 --> 04:13:36,330
但现在土壤已经变黑了,我们可以看到
6115
04:13:36,400 --> 04:13:37,770
再次的墙壁
6116
04:13:39,100 --> 04:13:41,800
如果我取消选择整个平铺地图
6117
04:13:41,800 --> 04:13:43,730
我们可以看到我们现在有一堵墙
6118
04:13:43,800 --> 04:13:46,100
下面是带有土壤的瓷砖
6119
04:13:46,330 --> 04:13:47,730
这也适用于游戏
6120
04:13:48,300 --> 04:13:50,800
如果我走到那里
6121
04:13:52,030 --> 04:13:54,200
我们得到了一个非常漂亮的图形
6122
04:13:54,200 --> 04:13:55,830
所以这看起来真的很好
6123
04:13:56,430 --> 04:13:59,370
您还可以对再次选择的平铺地图执行哪些操作
6124
04:13:59,570 --> 04:14:00,970
在右侧
6125
04:14:01,430 --> 04:14:03,770
画起来会很烦人
6126
04:14:03,770 --> 04:14:04,830
所有这些瓷砖
6127
04:14:04,830 --> 04:14:08,500
所以如果我只是想画这个区域
6128
04:14:09,130 --> 04:14:09,830
选择每一个
6129
04:14:09,830 --> 04:14:11,930
单块瓷砖会有点烦人
6130
04:14:12,330 --> 04:14:14,400
为此,谷歌有几个功能
6131
04:14:14,400 --> 04:14:17,570
所以现在我们选择了这支有油漆的笔
6132
04:14:17,770 --> 04:14:20,500
除此之外我们还可以画一条线
6133
04:14:20,930 --> 04:14:23,570
选择这个后我可以简单地画一条线
6134
04:14:23,570 --> 04:14:26,400
好的 0 正在从一个点到另一个点画一条线
6135
04:14:27,430 --> 04:14:29,430
更有用的是矩形
6136
04:14:29,430 --> 04:14:31,700
这个可以让你画一个矩形
6137
04:14:31,730 --> 04:14:33,430
这要快得多
6138
04:14:34,730 --> 04:14:37,530
你还有一个装满水的桶,这个
6139
04:14:37,930 --> 04:14:40,170
智能填充特定区域
6140
04:14:40,200 --> 04:14:42,300
虽然这不是我现在想要使用的
6141
04:14:42,930 --> 04:14:46,170
因为我们不想填满每一块瓷砖
6142
04:14:47,600 --> 04:14:49,600
您想要使用油漆桶的方式
6143
04:14:49,600 --> 04:14:52,000
你想绘制一块瓷砖区域吗
6144
04:14:52,000 --> 04:14:53,370
让我们说这样的话
6145
04:14:53,800 --> 04:14:55,370
这需要附上
6146
04:14:55,370 --> 04:14:57,730
在那里你可以填满整个区域
6147
04:14:58,170 --> 04:15:00,300
虽然这不是我现在想做的
6148
04:15:01,030 --> 04:15:04,700
相反,我想在这里画这个区域的角落
6149
04:15:04,800 --> 04:15:06,130
所以像这样
6150
04:15:06,170 --> 04:15:08,570
然后我意识到现在
6151
04:15:08,570 --> 04:15:09,800
我在墙上工作
6152
04:15:09,800 --> 04:15:12,400
我应该在土壤里工作
6153
04:15:13,800 --> 04:15:14,930
这意味着我想得到
6154
04:15:14,930 --> 04:15:18,330
去掉我刚刚创建的所有瓷砖
6155
04:15:18,600 --> 04:15:20,300
这应该不会花太长时间
6156
04:15:23,900 --> 04:15:26,930
现在我们开始选择土壤
6157
04:15:27,300 --> 04:15:30,700
我想像这样画几个角件
6158
04:15:30,900 --> 04:15:32,030
像这个
6159
04:15:32,800 --> 04:15:33,600
这个
6160
04:15:34,330 --> 04:15:37,530
对于向下的部分我可以使用那些
6161
04:15:37,800 --> 04:15:41,030
然后在某个时候我会回到
6162
04:15:41,030 --> 04:15:41,830
正确的
6163
04:15:43,770 --> 04:15:45,370
现在就这一件
6164
04:15:45,370 --> 04:15:46,770
我们有一点问题
6165
04:15:46,770 --> 04:15:48,930
因为我们没有角件
6166
04:15:48,930 --> 04:15:50,200
这个特定区域
6167
04:15:53,000 --> 04:15:55,730
相反,我要放置一个像这样的瓷砖
6168
04:15:55,730 --> 04:15:58,330
这在游戏中不起作用,因为我们可以看到
6169
04:15:58,800 --> 04:16:00,830
从Montile到另一个的过渡
6170
04:16:00,830 --> 04:16:02,130
看起来很糟糕
6171
04:16:02,630 --> 04:16:04,830
为了稍后隐藏它,我将放置一个
6172
04:16:04,970 --> 04:16:06,370
其上的对象
6173
04:16:07,400 --> 04:16:10,330
如果玩家看不到它,它基本上就不存在
6174
04:16:10,330 --> 04:16:12,230
所以我们不必太担心
6175
04:16:12,600 --> 04:16:16,630
现在如果我缩小我可以关闭这个区域
6176
04:16:17,330 --> 04:16:18,130
像这样
6177
04:16:18,300 --> 04:16:20,730
然后用油漆桶装满整个东西
6178
04:16:21,600 --> 04:16:24,030
让我试试这个游戏
6179
04:16:24,330 --> 04:16:26,030
我仍然可以发射激光
6180
04:16:26,030 --> 04:16:27,000
这是一个好的开始
6181
04:16:27,370 --> 04:16:29,400
在那里我们可以看到有一堵墙
6182
04:16:29,500 --> 04:16:31,630
洗涤时间可能应该长一点
6183
04:16:32,600 --> 04:16:34,030
在右边
6184
04:16:34,300 --> 04:16:37,100
我们可以看到我们确实有了进步
6185
04:16:37,100 --> 04:16:39,830
尽管我们确实必须扩大土壤
6186
04:16:39,830 --> 04:16:42,000
我们稍后必须
6187
04:16:42,200 --> 04:16:43,630
隐藏这个角落
6188
04:16:45,000 --> 04:16:47,130
首先选择土壤
6189
04:16:47,300 --> 04:16:50,900
我想单击区域并编辑区域
6190
04:16:53,600 --> 04:16:57,130
选择编辑器后让我最大化窗口
6191
04:16:57,300 --> 04:17:01,430
我想尽可能扩大这个窗口
6192
04:17:02,170 --> 04:17:03,900
如果你把它做得太大的话
6193
04:17:03,900 --> 04:17:05,600
合作起来可能有点烦人
6194
04:17:05,600 --> 04:17:07,600
但我认为这样的事情应该有效
6195
04:17:08,700 --> 04:17:09,430
我们就这样吧
6196
04:17:09,430 --> 04:17:11,370
现在我们有一个非常广泛的水平
6197
04:17:12,100 --> 04:17:13,630
显然如果你有自己的游戏
6198
04:17:13,630 --> 04:17:15,730
你想在这里说得更具体一些
6199
04:17:15,730 --> 04:17:17,900
但我认为就我的目的而言这很好
6200
04:17:17,970 --> 04:17:19,400
我猜在编辑器里面
6201
04:17:19,400 --> 04:17:25,170
我们可以将其从 25 000 更改为 22 000
6202
04:17:27,200 --> 04:17:28,970
看起来好一点了
6203
04:17:30,230 --> 04:17:33,400
假设 20 000 像素
6204
04:17:33,770 --> 04:17:34,770
看起来不错
6205
04:17:36,400 --> 04:17:36,930
稍后的
6206
04:17:36,930 --> 04:17:39,130
我们将大致限制玩家
6207
04:17:39,130 --> 04:17:41,230
这个区域那个方向
6208
04:17:41,230 --> 04:17:43,630
外面发生的一切并不重要
6209
04:17:43,930 --> 04:17:45,900
但你不想让图形太大
6210
04:17:45,900 --> 04:17:48,100
因为这会影响性能
6211
04:17:48,100 --> 04:17:49,000
至少一点点
6212
04:17:50,370 --> 04:17:53,030
我想我们可以把这个变成 16 000
6213
04:17:53,300 --> 04:17:54,530
是的,感觉好一点了
6214
04:17:55,030 --> 04:17:58,570
对于高度我想要 10 000
6215
04:17:59,700 --> 04:18:04,370
接下来我们必须隐藏这个丑陋的角落
6216
04:18:04,370 --> 04:18:06,830
我想有一个很好的方法来解决这个问题
6217
04:18:06,900 --> 04:18:10,000
就是简单地拖动一些苔藓然后
6218
04:18:10,300 --> 04:18:11,600
把它放在那个位置
6219
04:18:11,600 --> 04:18:14,000
并确保它位于图块地图的顶部
6220
04:18:15,000 --> 04:18:18,930
看起来好一点了
6221
04:18:19,630 --> 04:18:21,930
我想让这一切看起来更真实
6222
04:18:21,970 --> 04:18:24,430
我们可以把所有的苔藓放在一起
6223
04:18:24,430 --> 04:18:26,200
在图块地图的顶部
6224
04:18:28,200 --> 04:18:29,600
那不是我想要做的
6225
04:18:29,600 --> 04:18:31,230
像这样的东西更好
6226
04:18:31,970 --> 04:18:32,430
现在
6227
04:18:32,430 --> 04:18:35,400
我们可以简单地沿着这张图块地图放置一些苔藓
6228
04:18:35,400 --> 04:18:37,930
如果你复制节点
6229
04:18:38,230 --> 04:18:41,900
你可以很快地在里面添加很多东西
6230
04:18:43,030 --> 04:18:45,830
然后我想复制这一切
6231
04:18:46,400 --> 04:18:47,570
与变换
6232
04:18:47,570 --> 04:18:50,200
我想给它一些旋转
6233
04:18:50,600 --> 04:18:51,630
把它移到那里
6234
04:18:51,930 --> 04:18:54,370
我可以多次这样做
6235
04:18:54,530 --> 04:18:56,500
并简单地添加越来越多的瓷砖
6236
04:18:57,600 --> 04:19:00,030
再次,您添加到关卡中的细节越多
6237
04:19:00,170 --> 04:19:01,700
它看起来越好
6238
04:19:01,700 --> 04:19:03,430
至少作为一般规则
6239
04:19:03,900 --> 04:19:06,570
最后这堵墙现在太短了
6240
04:19:06,570 --> 04:19:08,170
所以选择了时间图
6241
04:19:08,170 --> 04:19:11,770
我想在墙内工作并添加
6242
04:19:12,170 --> 04:19:14,630
或者在那里再画一些
6243
04:19:15,770 --> 04:19:19,000
这不是我的本意,我们就这样吧
6244
04:19:20,300 --> 04:19:22,400
好吧
6245
04:19:22,730 --> 04:19:25,530
我们有更好看的水平
6246
04:19:25,630 --> 04:19:28,000
这是一个重大改进
6247
04:19:28,930 --> 04:19:30,730
我们现在要做的就是做一个练习
6248
04:19:30,730 --> 04:19:33,030
然后我们就完成了另一个主要部分
6249
04:19:33,970 --> 04:19:35,370
我想要你们
6250
04:19:35,370 --> 04:19:39,230
创建一个以 2d 区域为父级的新场景
6251
04:19:39,930 --> 04:19:42,600
场景的名称应该是 house
6252
04:19:43,430 --> 04:19:46,300
接下来我希望你们添加一张小时候的轮胎图
6253
04:19:46,300 --> 04:19:48,000
然后使用内部
6254
04:19:48,000 --> 04:19:51,200
用于为房子创建图像的 PNG 图形
6255
04:19:51,800 --> 04:19:54,770
为了完成所有这些,你需要三层
6256
04:19:54,770 --> 04:19:55,900
你需要地板
6257
04:19:55,930 --> 04:19:58,800
然后是外墙,然后是内墙
6258
04:19:58,930 --> 04:20:01,130
这个的顺序也很重要
6259
04:20:01,700 --> 04:20:03,100
闪光灯出现在底部
6260
04:20:03,100 --> 04:20:04,400
接下来是外墙
6261
04:20:04,400 --> 04:20:05,830
然后是内墙
6262
04:20:06,630 --> 04:20:09,770
我想我应该首先解释一下瓷砖集
6263
04:20:10,130 --> 04:20:11,500
让我们快速看一下
6264
04:20:12,530 --> 04:20:13,230
回到戈多姆
6265
04:20:13,230 --> 04:20:16,930
我要点击室内 PNG 瓷砖集
6266
04:20:17,200 --> 04:20:19,900
在那里我可以扩展一些东西
6267
04:20:20,530 --> 04:20:24,700
我们有很多瓷砖,用于地板的瓷砖是这些
6268
04:20:26,530 --> 04:20:29,100
外墙是那些
6269
04:20:29,600 --> 04:20:33,500
然后内墙就是底部的这些
6270
04:20:34,800 --> 04:20:36,830
你必须尝试一下这个
6271
04:20:36,830 --> 04:20:39,330
但我认为一旦你进行了一些练习
6272
04:20:39,330 --> 04:20:40,830
这应该是相当简单的
6273
04:20:40,830 --> 04:20:43,400
瓷砖设置,所以现在发布视频
6274
04:20:43,400 --> 04:20:45,430
并尝试自己解决这个问题
6275
04:20:48,770 --> 04:20:50,170
回到古多姆
6276
04:20:50,170 --> 04:20:52,770
我想让这一切变得更小
6277
04:20:52,770 --> 04:20:55,530
而是创建一个新场景
6278
04:20:55,900 --> 04:20:59,900
这个新场景作为父级将获得一个 2d 区域
6279
04:21:00,400 --> 04:21:04,330
这个区域 2d 我想立即重命名为 house
6280
04:21:05,430 --> 04:21:08,830
这样我就可以将所有这些保存在场景中
6281
04:21:08,830 --> 04:21:11,830
我想我们可以创建一个新文件夹
6282
04:21:11,830 --> 04:21:13,600
我们称之为一所房子
6283
04:21:13,900 --> 04:21:15,300
如果你想创造更多
6284
04:21:15,300 --> 04:21:16,830
你可以在这里创建多个
6285
04:21:16,830 --> 04:21:18,570
虽然我会坚持使用一个
6286
04:21:19,300 --> 04:21:20,500
现在有了那个
6287
04:21:20,770 --> 04:21:22,500
我们有一个新场景
6288
04:21:23,230 --> 04:21:25,230
这个应该有一个孩子
6289
04:21:25,230 --> 04:21:27,030
这将是一个平铺地图
6290
04:21:28,030 --> 04:21:30,930
什么是瓦片地图现在我们必须设置瓦片地图
6291
04:21:30,930 --> 04:21:33,900
现在它是空的,所以我们需要一个新的图块地图
6292
04:21:34,400 --> 04:21:36,430
在此图块集上我想再次单击
6293
04:21:36,430 --> 04:21:40,130
并将大小更改为 390 x 390
6294
04:21:41,770 --> 04:21:42,770
接着就,随即
6295
04:21:43,100 --> 04:21:47,200
我们可以将内部PNG拖到图块集中
6296
04:21:47,500 --> 04:21:50,930
我们确实想自动创建图块
6297
04:21:51,030 --> 04:21:53,900
这里有我们可以使用的所有瓷砖
6298
04:21:53,900 --> 04:21:54,830
看起来真不错
6299
04:21:55,400 --> 04:21:57,130
也只是为了保持一致
6300
04:21:57,130 --> 04:22:00,630
我将重命名所有这些并将其称为“内部”
6301
04:22:01,000 --> 04:22:02,200
所以这样
6302
04:22:02,400 --> 04:22:05,830
如果我点击轮胎图我们就可以开始绘制
6303
04:22:05,930 --> 04:22:08,000
但这不是我想要开始的
6304
04:22:08,170 --> 04:22:10,400
相反,我想看看图层
6305
04:22:10,400 --> 04:22:13,230
然后创建我需要的三层
6306
04:22:13,830 --> 04:22:15,800
首先我们请发言
6307
04:22:16,570 --> 04:22:18,400
然后我想要另一个元素
6308
04:22:18,400 --> 04:22:20,100
这将是
6309
04:22:20,400 --> 04:22:22,400
外墙
6310
04:22:23,530 --> 04:22:26,600
最后我们有了内墙或内墙
6311
04:22:26,600 --> 04:22:28,770
这里的名字其实并不重要
6312
04:22:29,000 --> 04:22:31,230
重要的是我们可以将不同的
6313
04:22:31,230 --> 04:22:32,400
这里面的层
6314
04:22:32,400 --> 04:22:33,400
放在菜单上
6315
04:22:33,630 --> 04:22:35,370
让我们从地板开始吧
6316
04:22:35,370 --> 04:22:38,230
为此我们有这个瓷砖
6317
04:22:38,230 --> 04:22:40,000
这就是我想要开始的
6318
04:22:40,030 --> 04:22:41,600
所以选择了这个
6319
04:22:41,830 --> 04:22:45,430
我想画一个房子的大致区域
6320
04:22:45,700 --> 04:22:47,370
像这样的东西
6321
04:22:47,830 --> 04:22:49,430
如果你放大
6322
04:22:49,500 --> 04:22:50,200
你可以看到
6323
04:22:50,200 --> 04:22:52,700
各个瓷砖之间有间隔
6324
04:22:52,930 --> 04:22:54,500
我觉得看起来不错
6325
04:22:55,100 --> 04:22:58,370
现在我们可以点击外墙了
6326
04:22:58,500 --> 04:23:01,030
外板应该是这个区域
6327
04:23:01,430 --> 04:23:02,230
最重要的是
6328
04:23:02,230 --> 04:23:05,170
我们有这些可以使用的结束位
6329
04:23:05,170 --> 04:23:06,900
关上一扇门
6330
04:23:08,230 --> 04:23:10,130
一旦我使用它,它就会变得更有意义
6331
04:23:10,130 --> 04:23:15,370
所以我想在这一切周围画一堵墙
6332
04:23:16,830 --> 04:23:19,300
我必须确保始终选择正确的图块
6333
04:23:19,400 --> 04:23:21,100
然后简单地
6334
04:23:21,430 --> 04:23:23,370
把它全部抹掉
6335
04:23:23,730 --> 04:23:26,370
我们刚刚创建的地板面积
6336
04:23:29,230 --> 04:23:30,230
看起来不错
6337
04:23:31,600 --> 04:23:34,400
现在如果我放大图块集
6338
04:23:34,400 --> 04:23:36,200
我们有这些结尾部分
6339
04:23:36,370 --> 04:23:37,970
所以这个是左边的
6340
04:23:37,970 --> 04:23:39,630
这个是右边的
6341
04:23:41,770 --> 04:23:44,970
这样我们就不会得到一个简单的图形结尾
6342
04:23:44,970 --> 04:23:46,200
这看起来有点奇怪
6343
04:23:46,700 --> 04:23:49,030
接下来我想再次选择楼层
6344
04:23:49,130 --> 04:23:51,630
因为现在我们有这个空的空间
6345
04:23:51,630 --> 04:23:53,330
地板和墙壁之间
6346
04:23:53,430 --> 04:23:55,830
为了填补这一点,我有这些结尾部分
6347
04:23:55,830 --> 04:23:57,370
所以我可以简单地直接
6348
04:23:58,830 --> 04:24:02,000
我将鼠标悬停在所有这些上然后绘制
6349
04:24:02,570 --> 04:24:03,370
这
6350
04:24:03,930 --> 04:24:07,570
边缘位,我犯了一个错误
6351
04:24:07,630 --> 04:24:09,400
所以对于这种事情
6352
04:24:10,330 --> 04:24:12,970
你只是想继续工作
6353
04:24:12,970 --> 04:24:15,170
如果你犯了一个错误,就尽快改正
6354
04:24:15,370 --> 04:24:17,200
你将会犯很多错误
6355
04:24:18,800 --> 04:24:20,430
好吧,没关系
6356
04:24:20,570 --> 04:24:22,970
我们拥有所有的边缘位
6357
04:24:22,970 --> 04:24:24,630
除了入口处的
6358
04:24:24,900 --> 04:24:27,600
入口有点特别,因为那些
6359
04:24:27,600 --> 04:24:29,170
这些瓷砖所以
6360
04:24:30,000 --> 04:24:31,600
不是这个而是这个
6361
04:24:31,900 --> 04:24:35,170
这样我们就覆盖了直到墙的区域
6362
04:24:35,170 --> 04:24:36,400
我认为看起来更好
6363
04:24:38,230 --> 04:24:41,400
现在如果我取消选择轮胎图
6364
04:24:41,570 --> 04:24:44,230
我们可以看到我们的房子有面积
6365
04:24:44,800 --> 04:24:46,770
我们可以简单地将这座房子放入关卡中
6366
04:24:46,770 --> 04:24:48,500
然后我们还有另一个区域
6367
04:24:48,630 --> 04:24:50,630
虽然在我这样做之前
6368
04:24:50,630 --> 04:24:52,300
我们仍然收到警告
6369
04:24:52,500 --> 04:24:54,900
我们没有这个区域的形状
6370
04:24:54,900 --> 04:24:57,000
我们可以很容易地改变 2d
6371
04:24:57,000 --> 04:25:00,000
我想给它一个碰撞形状 2d
6372
04:25:00,530 --> 04:25:03,700
形状将是一个新的矩形
6373
04:25:04,200 --> 04:25:07,100
我必须扩展这个矩形形状
6374
04:25:07,100 --> 04:25:09,970
因为我们要处理的区域相当大
6375
04:25:10,300 --> 04:25:14,500
假设这样的事情就可以正常工作
6376
04:25:14,830 --> 04:25:16,770
你不必在这里太精确
6377
04:25:16,770 --> 04:25:17,930
没关系
6378
04:25:17,930 --> 04:25:19,900
但这看起来不错
6379
04:25:20,300 --> 04:25:21,800
这样我们就有了房子
6380
04:25:21,800 --> 04:25:23,970
现在回到关卡内部
6381
04:25:25,370 --> 04:25:27,000
仍在地下
6382
04:25:27,200 --> 04:25:31,030
我想添加这个场景,我称之为一个房子
6383
04:25:31,770 --> 04:25:35,030
现在我们可以把房子搬走
6384
04:25:35,600 --> 04:25:38,830
我们可以在变换上给它一个旋转
6385
04:25:38,830 --> 04:25:41,170
让我们把它旋转成这样
6386
04:25:42,230 --> 04:25:43,930
然后再次进入游戏
6387
04:25:44,930 --> 04:25:47,370
我可以搬到房子里去
6388
04:25:47,600 --> 04:25:50,400
最终我们得到了它
6389
04:25:50,970 --> 04:25:52,630
入口可能有点太大了
6390
04:25:52,630 --> 04:25:54,430
但这并不重要
6391
04:25:54,930 --> 04:25:57,630
嗯,这看起来真的很好
6392
04:25:57,630 --> 04:25:58,830
我们有房子
6393
04:25:59,200 --> 04:26:01,400
虽然现在我们还没有内饰
6394
04:26:01,700 --> 04:26:03,230
回到房子里
6395
04:26:03,230 --> 04:26:05,500
我想继续使用轮胎图
6396
04:26:05,830 --> 04:26:06,170
还
6397
04:26:06,170 --> 04:26:09,000
我想将碰撞形状移到平铺地图后面
6398
04:26:09,730 --> 04:26:12,230
对于 godot 来说,这两个音符的顺序并不重要
6399
04:26:12,430 --> 04:26:13,430
但在我们的例子中
6400
04:26:13,430 --> 04:26:16,100
顶部的轮胎图使其更容易使用
6401
04:26:17,900 --> 04:26:18,900
现在酷了
6402
04:26:19,570 --> 04:26:21,530
选定内墙
6403
04:26:21,630 --> 04:26:23,630
我想看底部
6404
04:26:23,630 --> 04:26:25,970
在那里我们有所有的内墙
6405
04:26:26,430 --> 04:26:29,330
对于那些我想放大一点的人
6406
04:26:30,030 --> 04:26:32,300
例如,我们可以使用这个图块
6407
04:26:32,300 --> 04:26:33,530
消失一个结束位
6408
04:26:34,030 --> 04:26:38,500
然后添加一些内墙
6409
04:26:39,370 --> 04:26:41,500
我们有一个角部分
6410
04:26:41,570 --> 04:26:43,900
然后我们就可以这样走
6411
04:26:45,800 --> 04:26:47,730
如果您之前没有使用过这些图块集
6412
04:26:47,730 --> 04:26:49,600
他们可能有点难以合作
6413
04:26:49,600 --> 04:26:50,770
对此深感抱歉
6414
04:26:51,200 --> 04:26:53,500
但这只是一个练习问题
6415
04:26:53,630 --> 04:26:55,630
像这样我们添加了
6416
04:26:56,400 --> 04:26:58,030
在内墙
6417
04:26:58,200 --> 04:27:00,430
可能有点太远了
6418
04:27:00,430 --> 04:27:02,500
所以让我摆脱这一切
6419
04:27:03,230 --> 04:27:06,500
而是开始放置它
6420
04:27:06,500 --> 04:27:07,570
我想这里还可以
6421
04:27:08,500 --> 04:27:09,030
所以
6422
04:27:09,030 --> 04:27:12,100
我想再次在这个区域内创建一扇门
6423
04:27:12,100 --> 04:27:14,430
然后剩下的就只是一堵墙了
6424
04:27:14,770 --> 04:27:18,530
只是为了在那里添加其他东西
6425
04:27:18,630 --> 04:27:22,730
我想在顶部我们可以分割这个区域
6426
04:27:22,900 --> 04:27:24,600
为此我想在这里有一个结尾
6427
04:27:24,600 --> 04:27:26,900
和另一边的结尾位
6428
04:27:27,300 --> 04:27:30,800
然后简单地在它们上面拖一堵墙
6429
04:27:31,300 --> 04:27:32,570
并把它装饰得更好一点
6430
04:27:32,730 --> 04:27:34,430
我们可以得到这个 T 形件
6431
04:27:34,500 --> 04:27:36,570
然后添加另一个分隔符
6432
04:27:37,970 --> 04:27:40,600
如果我回到原来的水平
6433
04:27:41,170 --> 04:27:42,230
我们什么也看不见
6434
04:27:42,230 --> 04:27:44,300
那是因为我没有保存场景
6435
04:27:44,300 --> 04:27:47,130
所以如果我保存它然后我们回去
6436
04:27:47,800 --> 04:27:51,300
我们可以看到这所房子有实际的内墙
6437
04:27:51,770 --> 04:27:53,030
让我们再尝试一下
6438
04:27:53,330 --> 04:27:56,500
我确实需要走一段路,这很好
6439
04:27:57,370 --> 04:28:00,570
好了,我们有内墙了
6440
04:28:02,000 --> 04:28:04,030
如果我们在其中添加更多对象
6441
04:28:04,030 --> 04:28:05,500
这看起来也会好得多
6442
04:28:05,600 --> 04:28:07,200
我们稍后要做的事情
6443
04:28:07,770 --> 04:28:09,900
但目前这部分已经很长了
6444
04:28:09,900 --> 04:28:11,130
所以让我们在这里结束吧
6445
04:28:11,200 --> 04:28:12,330
现在我们有了轮胎图
6446
04:28:12,330 --> 04:28:14,330
我们应该多讨论一点物理
6447
04:28:14,430 --> 04:28:17,730
我特别想谈谈物理层
6448
04:28:17,730 --> 04:28:20,770
现在我们必须解决两个问题
6449
04:28:20,930 --> 04:28:23,100
让我用古老的方式展示这一切
6450
04:28:23,100 --> 04:28:25,030
它应该最好地说明这一切
6451
04:28:25,170 --> 04:28:28,170
我们又回到了戈多,最明显的问题是
6452
04:28:28,170 --> 04:28:29,800
如果我运行所有这些
6453
04:28:29,800 --> 04:28:32,530
我仍然可以移动玩家并且仍然可以射击
6454
04:28:32,530 --> 04:28:35,500
但在某个时刻,一旦我们到达房子
6455
04:28:35,530 --> 04:28:39,400
没有发生碰撞,这显然不太好
6456
04:28:39,400 --> 04:28:41,330
所以这是我们必须努力的事情
6457
04:28:41,930 --> 04:28:43,330
除此之外
6458
04:28:43,500 --> 04:28:46,300
让我在编辑器中演示一下
6459
04:28:48,030 --> 04:28:52,030
我们有这个区域,稍后还有这个区域
6460
04:28:52,300 --> 04:28:53,800
将是一个过渡点
6461
04:28:53,970 --> 04:28:55,970
这意味着如果玩家与它发生碰撞
6462
04:28:55,970 --> 04:28:58,100
我们要加载一个内部关卡
6463
04:28:58,330 --> 04:28:59,130
尽管如此
6464
04:28:59,170 --> 04:29:01,830
我们要确保只有玩家可以交互
6465
04:29:01,830 --> 04:29:03,030
与这个区域
6466
04:29:03,100 --> 04:29:05,770
我们不想加载新区域(如果有其他区域)
6467
04:29:05,770 --> 04:29:07,100
物体与其碰撞
6468
04:29:07,130 --> 04:29:08,900
例如,如果敌人进入其中
6469
04:29:08,900 --> 04:29:10,930
或者如果我们向它发射激光
6470
04:29:11,100 --> 04:29:13,400
我们不想推出新关卡
6471
04:29:13,630 --> 04:29:15,230
我实际上也可以证明这一点
6472
04:29:15,230 --> 04:29:16,900
所以如果我再次运行这一切
6473
04:29:17,130 --> 04:29:19,100
如果玩家进入该区域
6474
04:29:19,200 --> 04:29:22,170
我们让玩家进入大门,然后进入玩家节点
6475
04:29:22,170 --> 04:29:23,830
没关系
6476
04:29:23,970 --> 04:29:27,230
但是如果我将手榴弹射入该区域
6477
04:29:27,970 --> 04:29:29,000
我们得到
6478
04:29:29,830 --> 04:29:32,930
手榴弹,我们还为玩家提供了花哨门
6479
04:29:33,130 --> 04:29:35,170
这基本上意味着
6480
04:29:35,770 --> 04:29:38,400
我们遇到了一些不一致的行为
6481
04:29:38,930 --> 04:29:42,100
我们得到这个的原因是这个门
6482
04:29:42,570 --> 04:29:44,930
或大门内侧的区域
6483
04:29:45,130 --> 04:29:48,330
只关心身体是否进入该区域
6484
04:29:48,330 --> 04:29:50,430
它并不关心哪种身体
6485
04:29:50,430 --> 04:29:51,930
所以身体可以是玩家
6486
04:29:51,930 --> 04:29:53,200
但它也可能是敌人
6487
04:29:53,200 --> 04:29:54,700
或者它可能是手榴弹
6488
04:29:54,930 --> 04:29:55,630
激光虽然
6489
04:29:55,630 --> 04:29:58,300
不会触发它,因为那是一个区域而不是一个身体
6490
04:29:58,500 --> 04:30:00,630
但我们仍然需要考虑到这一点
6491
04:30:00,830 --> 04:30:01,400
幸运的是
6492
04:30:01,400 --> 04:30:04,170
使用物理层很容易做到
6493
04:30:04,170 --> 04:30:05,700
让我们来谈谈他们
6494
04:30:05,970 --> 04:30:09,770
在godome中,每个碰撞对象都有一个碰撞层
6495
04:30:09,770 --> 04:30:12,000
所以如果你看任何类型的碰撞物体
6496
04:30:12,030 --> 04:30:13,500
我们可以看看播放器
6497
04:30:13,500 --> 04:30:14,700
让我打开场景
6498
04:30:14,800 --> 04:30:16,900
在那里我们有 2D 角色身体
6499
04:30:16,970 --> 04:30:18,700
这是一个碰撞对象
6500
04:30:19,570 --> 04:30:20,830
右边这个
6501
04:30:20,830 --> 04:30:23,100
检查员内部发生碰撞
6502
04:30:23,130 --> 04:30:24,770
我们有一个安全边际
6503
04:30:24,770 --> 04:30:26,600
我将忽略这个
6504
04:30:26,770 --> 04:30:29,430
然后我们有一个图层和一个蒙版
6505
04:30:29,630 --> 04:30:33,100
我们为每个人都配备了这种碰撞系统
6506
04:30:33,100 --> 04:30:34,330
可碰撞物体
6507
04:30:34,330 --> 04:30:37,030
例如,如果我看那里的手榴弹
6508
04:30:37,170 --> 04:30:41,100
如果我把物理原理进一步最小化
6509
04:30:41,100 --> 04:30:41,830
我们发生了碰撞
6510
04:30:41,830 --> 04:30:44,830
我们再一次有了一个图层和一个蒙版
6511
04:30:45,730 --> 04:30:47,430
那是什么意思
6512
04:30:47,730 --> 04:30:48,500
在好圆顶
6513
04:30:48,500 --> 04:30:51,430
您可以将可碰撞对象放置在各个图层上
6514
04:30:51,430 --> 04:30:51,930
进而
6515
04:30:51,930 --> 04:30:54,770
还告诉他们只与上面的物体交互
6516
04:30:54,770 --> 04:30:56,200
某种层
6517
04:30:56,200 --> 04:30:59,370
为此我们有一个图层和一个蒙版
6518
04:30:59,630 --> 04:31:01,600
该系统将如何工作
6519
04:31:01,600 --> 04:31:05,500
图层决定对象本身位于哪一层
6520
04:31:05,570 --> 04:31:07,700
而质量决定了它可以在哪一层
6521
04:31:07,700 --> 04:31:08,800
与。。。相互作用
6522
04:31:09,130 --> 04:31:11,330
这听起来可能有点令人困惑
6523
04:31:11,330 --> 04:31:12,700
让我们举个例子
6524
04:31:13,530 --> 04:31:14,700
再次定义:
6525
04:31:14,730 --> 04:31:18,100
在我们的游戏中我们将有多个层
6526
04:31:18,100 --> 04:31:19,430
我们有一个玩家层
6527
04:31:19,430 --> 04:31:20,700
敌人 物体
6528
04:31:20,700 --> 04:31:23,530
项目和区域的射弹和它们
6529
04:31:23,930 --> 04:31:27,100
玩家场景几乎就是角色的身体
6530
04:31:27,100 --> 04:31:28,530
对于玩家来说太深了
6531
04:31:28,570 --> 04:31:30,730
将在玩家层
6532
04:31:31,230 --> 04:31:33,600
但它的面具会相互作用
6533
04:31:33,600 --> 04:31:35,330
与所有其他层
6534
04:31:35,370 --> 04:31:37,770
这意味着玩家可以互动
6535
04:31:38,000 --> 04:31:41,900
物理上与所有这些其他层
6536
04:31:42,170 --> 04:31:44,370
再举个例子,我们有敌人
6537
04:31:44,370 --> 04:31:47,030
而敌人本身将会是
6538
04:31:47,030 --> 04:31:48,130
在敌人层
6539
04:31:48,130 --> 04:31:49,530
这应该是相当简单的
6540
04:31:49,770 --> 04:31:53,430
但是对于蒙版,我们只有图层
6541
04:31:53,630 --> 04:31:55,800
物体和射弹
6542
04:31:56,000 --> 04:31:59,900
这意味着敌人只能与这些层互动
6543
04:32:00,100 --> 04:32:03,400
他们无法与物品或区域交互
6544
04:32:03,600 --> 04:32:05,630
这将修复门的行为
6545
04:32:05,770 --> 04:32:08,330
我们只希望玩家与其互动
6546
04:32:08,330 --> 04:32:10,700
但游戏内没有其他物体
6547
04:32:11,530 --> 04:32:14,330
好了,我们还有一些事情要实施
6548
04:32:14,330 --> 04:32:15,770
那么让我们回到戈多
6549
04:32:15,770 --> 04:32:17,330
然后我们可以做一些改变
6550
04:32:17,430 --> 04:32:19,600
我想从玩家场景开始
6551
04:32:19,600 --> 04:32:20,200
在那里
6552
04:32:20,200 --> 04:32:23,100
我们有 2D 角色身体,我们称之为玩家
6553
04:32:23,430 --> 04:32:26,370
如果我们看右边就会发生碰撞
6554
04:32:27,170 --> 04:32:30,830
该图层将设置该对象所在的图层
6555
04:32:30,830 --> 04:32:33,500
那里有几个数字
6556
04:32:33,730 --> 04:32:36,370
现在他们总是说第 1 层、第 2 层或第 3 层
6557
04:32:36,370 --> 04:32:38,330
这并没有告诉你太多
6558
04:32:38,630 --> 04:32:41,030
使这个系统更容易理解
6559
04:32:41,030 --> 04:32:42,770
你想去项目
6560
04:32:42,770 --> 04:32:43,570
在那里
6561
04:32:43,600 --> 04:32:46,170
如果你向下滚动我已经选择了它
6562
04:32:46,170 --> 04:32:48,230
我们那里有二维物理
6563
04:32:48,230 --> 04:32:50,230
您可以指定图层名称
6564
04:32:50,370 --> 04:32:51,700
更具描述性
6565
04:32:51,800 --> 04:32:53,900
在我们的例子中,我们想要第 1 层
6566
04:32:53,970 --> 04:32:55,500
作为玩家层
6567
04:32:55,900 --> 04:32:58,570
第 2 层将是敌人的
6568
04:32:58,600 --> 04:33:01,570
第三层将用于对象
6569
04:33:01,900 --> 04:33:05,130
第 4 层将用于射弹
6570
04:33:05,500 --> 04:33:10,600
最后第 5 层将用于物品和区域
6571
04:33:10,970 --> 04:33:12,970
虽然这里的命名并不重要
6572
04:33:12,970 --> 04:33:14,430
你可以随意命名它
6573
04:33:15,630 --> 04:33:16,700
你马上就会看到
6574
04:33:16,700 --> 04:33:18,370
会有什么不同
6575
04:33:18,600 --> 04:33:20,000
现在如果我遵循这个
6576
04:33:20,100 --> 04:33:22,300
如果我现在已经过了这些层,我们就会得到
6577
04:33:22,400 --> 04:33:25,300
或第 1 层玩家或第 2 层敌人
6578
04:33:25,500 --> 04:33:27,830
对于第 3 层,我们得到对象
6579
04:33:29,000 --> 04:33:31,700
除此之外,如果我对面具做同样的事情
6580
04:33:31,770 --> 04:33:33,800
在第一,我们得到玩家
6581
04:33:33,800 --> 04:33:36,970
在 2 号上我们得到敌人,在 3 号上我们得到物体
6582
04:33:37,000 --> 04:33:39,100
我们在图层中得到的结果是一样的
6583
04:33:39,330 --> 04:33:41,170
你必须明白的真正重要的事情
6584
04:33:41,170 --> 04:33:42,900
就是图层和蒙版
6585
04:33:42,900 --> 04:33:45,170
谈论同种层
6586
04:33:45,200 --> 04:33:47,930
例如现在玩家将位于第 1 层
6587
04:33:47,930 --> 04:33:49,200
这对于玩家来说
6588
04:33:49,230 --> 04:33:51,330
它只能看到自己
6589
04:33:51,330 --> 04:33:54,230
那是因为面具也是1号的
6590
04:33:54,770 --> 04:33:59,100
但是如果我点击 2 3 4 和 5
6591
04:33:59,370 --> 04:34:02,230
现在玩家仍然在玩家所在的图层上
6592
04:34:02,370 --> 04:34:03,730
但玩家也可以互动
6593
04:34:03,730 --> 04:34:05,000
与所有的敌人
6594
04:34:05,230 --> 04:34:06,400
所有的物体
6595
04:34:06,400 --> 04:34:09,730
所有的射弹以及所有的区域和物品
6596
04:34:10,730 --> 04:34:13,430
虽然现在这并没有多大作用
6597
04:34:13,500 --> 04:34:15,900
因为我们还必须更新其他所有内容
6598
04:34:15,900 --> 04:34:18,800
为此我想看看大门
6599
04:34:18,800 --> 04:34:20,930
因为这是目前最容易做的事情
6600
04:34:21,170 --> 04:34:25,030
如果我打开该场景并单击区域 2d
6601
04:34:25,400 --> 04:34:27,500
我们再次发生碰撞
6602
04:34:27,630 --> 04:34:29,500
虽然现在对于图层
6603
04:34:29,600 --> 04:34:32,130
我们不希望它位于第 1 层
6604
04:34:32,200 --> 04:34:36,370
相反,区域 2d 应该仅位于第 5 层
6605
04:34:37,200 --> 04:34:38,600
然后是面具
6606
04:34:38,600 --> 04:34:41,230
我们只想与玩家互动
6607
04:34:41,400 --> 04:34:43,570
例如,我们不想让敌人成为可能
6608
04:34:43,570 --> 04:34:44,630
因为这会
6609
04:34:44,730 --> 04:34:45,930
允许任何种类的敌人
6610
04:34:45,930 --> 04:34:47,830
也可以与该对象交互
6611
04:34:47,970 --> 04:34:50,230
或区域不反对,但你明白了
6612
04:34:50,600 --> 04:34:51,230
与此
6613
04:34:51,230 --> 04:34:53,530
我们应该已经有了一个很好的开始
6614
04:34:53,730 --> 04:34:57,000
如果我现在运行游戏并进入大门
6615
04:34:57,170 --> 04:34:59,200
我们仍然让玩家进入大门
6616
04:34:59,330 --> 04:35:01,570
但是如果我发射手榴弹
6617
04:35:01,930 --> 04:35:04,370
我们仍然有错误的行为
6618
04:35:04,930 --> 04:35:07,970
这给我们带来了一个很好的挑战
6619
04:35:07,970 --> 04:35:09,100
让我们做一个练习
6620
04:35:09,330 --> 04:35:12,730
我希望你们看看手榴弹并找出答案
6621
04:35:12,730 --> 04:35:14,900
为什么它仍然触发门区域
6622
04:35:14,900 --> 04:35:15,700
二维
6623
04:35:15,700 --> 04:35:19,000
作为提示,请查看该场景的图层和蒙版
6624
04:35:19,330 --> 04:35:20,770
它应该相当简单
6625
04:35:20,770 --> 04:35:23,130
但现在是你的一部分并尝试解决这个问题
6626
04:35:26,230 --> 04:35:28,000
让我们看看手榴弹
6627
04:35:28,000 --> 04:35:29,130
进一步来说
6628
04:35:29,200 --> 04:35:31,430
我想看看刚体
6629
04:35:31,430 --> 04:35:33,630
手榴弹场景的 2D 内部
6630
04:35:33,700 --> 04:35:37,130
在那里我们再次有一个图层和一个蒙版
6631
04:35:37,530 --> 04:35:39,370
以及我们仍然得到的原因
6632
04:35:39,370 --> 04:35:41,130
错误的行为是
6633
04:35:41,130 --> 04:35:44,230
就好的面团物理系统而言
6634
04:35:44,370 --> 04:35:45,970
这枚手榴弹是玩家
6635
04:35:45,970 --> 04:35:48,130
因为它是在播放器层
6636
04:35:48,130 --> 04:35:50,730
所以第 1 层但这不应该是
6637
04:35:50,900 --> 04:35:53,530
相反,它应该在第 4 层
6638
04:35:53,570 --> 04:35:55,200
我认为这个是用于射弹的
6639
04:35:55,200 --> 04:35:57,570
如果我再次运行所有这些,我们现在就开始
6640
04:35:58,100 --> 04:36:00,100
我可以发射手榴弹
6641
04:36:00,200 --> 04:36:02,600
进入该区域,什么也不会发生
6642
04:36:02,900 --> 04:36:05,370
所以现在我们不再收到打印声明
6643
04:36:05,370 --> 04:36:06,930
这正是我们想要的
6644
04:36:07,400 --> 04:36:10,230
虽然我们还必须更新掩码,因为
6645
04:36:10,530 --> 04:36:13,600
手榴弹应该与玩家碰撞
6646
04:36:13,830 --> 04:36:15,830
它应该与敌人碰撞
6647
04:36:16,170 --> 04:36:20,030
与物体和射弹本身
6648
04:36:20,330 --> 04:36:22,500
尤其是最后一颗弹丸
6649
04:36:22,570 --> 04:36:23,700
这意味着
6650
04:36:23,700 --> 04:36:25,770
一个手榴弹场景可以与
6651
04:36:25,770 --> 04:36:26,930
另一个手榴弹场景
6652
04:36:27,100 --> 04:36:28,900
例如你可以在游戏中看到这一点
6653
04:36:29,000 --> 04:36:32,400
如果我发射一枚手榴弹,然后发射另一枚手榴弹
6654
04:36:32,970 --> 04:36:34,370
两枚手榴弹相互作用
6655
04:36:34,600 --> 04:36:36,830
如果我把这4拿走
6656
04:36:37,030 --> 04:36:39,230
他们不能再互相交流
6657
04:36:39,400 --> 04:36:40,830
所以现在如果我再做同样的事情
6658
04:36:42,930 --> 04:36:45,170
他们只是互相忽视
6659
04:36:45,370 --> 04:36:46,600
这不是我想要的
6660
04:36:46,800 --> 04:36:48,800
所以我要启用这一切
6661
04:36:49,200 --> 04:36:51,700
好吧,接下来我们必须更新大门
6662
04:36:51,970 --> 04:36:54,330
因为在那里我们有一个静态的 2d 物体
6663
04:36:54,530 --> 04:36:57,300
在门内我们发生了碰撞
6664
04:36:57,500 --> 04:37:00,100
这个应该在第 3 层
6665
04:37:00,170 --> 04:37:01,700
这是针对对象的
6666
04:37:02,000 --> 04:37:06,830
然而对于掩码,我们希望它是 1 2 3 和 4
6667
04:37:07,230 --> 04:37:09,900
这意味着这个门可以与玩家互动
6668
04:37:09,900 --> 04:37:11,700
敌人其他物体
6669
04:37:11,700 --> 04:37:13,570
虽然我们实际上并不需要这个
6670
04:37:13,570 --> 04:37:15,730
因为没有物体会移动
6671
04:37:16,530 --> 04:37:17,730
虽然对于4号来说
6672
04:37:17,800 --> 04:37:20,370
我们希望它也能与项目图块交互
6673
04:37:20,570 --> 04:37:22,730
下一步是激光
6674
04:37:23,200 --> 04:37:25,000
我们有一个二维区域
6675
04:37:25,130 --> 04:37:27,800
虽然因为这也是一个碰撞对象
6676
04:37:27,800 --> 04:37:29,700
我们也有碰撞
6677
04:37:30,130 --> 04:37:30,900
对于这个
6678
04:37:30,900 --> 04:37:33,970
对于弹丸,该层应为第 4 层
6679
04:37:34,030 --> 04:37:36,370
虽然激光可以与玩家互动
6680
04:37:36,500 --> 04:37:40,970
敌人是物体,但不是其他射弹
6681
04:37:41,130 --> 04:37:42,770
我希望此时你能得到这个系统
6682
04:37:42,770 --> 04:37:44,000
至少在基础层面上
6683
04:37:44,000 --> 04:37:45,930
它不会变得太复杂
6684
04:37:47,230 --> 04:37:48,630
你必须记住的最重要的事情
6685
04:37:48,630 --> 04:37:50,830
是你想要设置图层和质量
6686
04:37:50,830 --> 04:37:52,400
在游戏初期
6687
04:37:52,400 --> 04:37:53,330
因为后来
6688
04:37:53,330 --> 04:37:55,530
更新所有这些可能会非常乏味
6689
04:37:56,800 --> 04:37:59,200
虽然在我们的例子中我们已经快完成了
6690
04:37:59,200 --> 04:38:01,100
接下来我想修房子
6691
04:38:01,100 --> 04:38:01,800
因为在那里
6692
04:38:01,800 --> 04:38:04,970
我们有一个 2d 区域,稍后我确实想使用它
6693
04:38:05,200 --> 04:38:06,730
等等碰撞
6694
04:38:07,030 --> 04:38:10,530
我只想把它放在图层上
6695
04:38:10,570 --> 04:38:11,800
这个应该是5
6696
04:38:12,830 --> 04:38:15,230
并且它只能与玩家互动
6697
04:38:15,230 --> 04:38:16,600
所以面具应该是一个
6698
04:38:17,200 --> 04:38:19,130
有了这个我们就拥有了大部分的东西
6699
04:38:19,570 --> 04:38:23,030
虽然如果我按住 Ctrl 或命令 shift 和 0
6700
04:38:23,370 --> 04:38:25,830
我可以打开我所有的场景
6701
04:38:26,830 --> 04:38:28,930
在那里我们还有一些
6702
04:38:28,970 --> 04:38:31,700
真正重要的是无人机
6703
04:38:32,100 --> 04:38:34,170
这是我们现在唯一的敌人
6704
04:38:34,700 --> 04:38:36,970
这个肯定需要一个碰撞层
6705
04:38:37,330 --> 04:38:39,000
因为它不应该是玩家
6706
04:38:39,030 --> 04:38:40,770
应该只是敌人
6707
04:38:41,100 --> 04:38:43,130
虽然它可以与玩家互动
6708
04:38:43,170 --> 04:38:44,430
与其他敌人
6709
04:38:44,530 --> 04:38:46,400
物体和射弹
6710
04:38:47,330 --> 04:38:48,130
除此之外
6711
04:38:48,300 --> 04:38:50,330
我们有坏事和广告牌
6712
04:38:50,330 --> 04:38:52,370
那些应该是最后两个
6713
04:38:52,600 --> 04:38:53,930
两者都很简单
6714
04:38:53,930 --> 04:38:55,400
所以如果我看看碰撞
6715
04:38:55,630 --> 04:38:59,200
它们都应该位于对象层上
6716
04:38:59,200 --> 04:39:00,370
和桅杆
6717
04:39:00,500 --> 04:39:02,100
他们可以与
6718
04:39:02,230 --> 04:39:05,500
敌人和射弹
6719
04:39:05,970 --> 04:39:08,830
最后让我们开始制作广告牌
6720
04:39:08,930 --> 04:39:12,230
这个应该再次位于第 3 层
6721
04:39:12,370 --> 04:39:14,030
并且你可以和玩家互动
6722
04:39:14,330 --> 04:39:16,330
敌人和射弹
6723
04:39:16,930 --> 04:39:20,830
这样我们就完成了物理层的更新
6724
04:39:21,030 --> 04:39:23,570
所以让我关闭这一切
6725
04:39:23,570 --> 04:39:24,100
因为
6726
04:39:24,100 --> 04:39:26,030
拥有这一切将会非常令人困惑
6727
04:39:26,030 --> 04:39:26,830
打开
6728
04:39:28,800 --> 04:39:31,000
好吧,感觉好多了
6729
04:39:31,230 --> 04:39:33,230
虽然我不是故意要关门的
6730
04:39:33,230 --> 04:39:35,970
我们现在实际上就要使用它
6731
04:39:36,970 --> 04:39:38,500
很酷,这样
6732
04:39:38,570 --> 04:39:39,930
我们有碰撞层
6733
04:39:39,930 --> 04:39:41,730
这是一个非常重要的
6734
04:39:41,730 --> 04:39:43,230
系统入门
6735
04:39:43,830 --> 04:39:45,730
所以我们要解决的下一个问题
6736
04:39:45,730 --> 04:39:48,700
就是我们如何给瓦片地图一个碰撞层
6737
04:39:48,700 --> 04:39:50,500
这样玩家就可以与它碰撞
6738
04:39:50,570 --> 04:39:52,770
为此,如果我最小化层数
6739
04:39:52,770 --> 04:39:55,570
然后我点击图块集本身
6740
04:39:55,900 --> 04:39:57,570
我们有物理层
6741
04:39:57,570 --> 04:39:59,570
还有很多其他的东西
6742
04:39:59,570 --> 04:40:01,100
但我们现在可以忽略这一点
6743
04:40:01,100 --> 04:40:02,930
物理层是我们关心的
6744
04:40:03,000 --> 04:40:05,700
如果我点击它我们可以添加一个元素
6745
04:40:05,800 --> 04:40:06,800
再次出现
6746
04:40:06,800 --> 04:40:09,370
我们得到一个碰撞层和一个碰撞掩模
6747
04:40:09,930 --> 04:40:13,000
如果我将鼠标悬停在它们上方,我们会得到通常的图层
6748
04:40:13,000 --> 04:40:14,000
所以我们有了播放器
6749
04:40:14,000 --> 04:40:15,130
我们有敌人
6750
04:40:15,130 --> 04:40:17,800
我们有物体,我们有射弹
6751
04:40:17,900 --> 04:40:20,700
因为这只是一个静态对象
6752
04:40:20,800 --> 04:40:23,100
12和4是我要选择的
6753
04:40:23,400 --> 04:40:25,330
虽然我刚刚意识到这是错误的
6754
04:40:25,330 --> 04:40:27,330
因为这应该只是第三名
6755
04:40:27,430 --> 04:40:29,630
因为碰撞层就是它所在的层
6756
04:40:29,630 --> 04:40:31,370
它只是一个对象
6757
04:40:31,400 --> 04:40:34,500
但它可能会与 1 2 和 4 发生碰撞
6758
04:40:34,500 --> 04:40:37,100
所以玩家是敌人和射弹
6759
04:40:37,600 --> 04:40:40,300
混淆这些数字非常容易
6760
04:40:40,300 --> 04:40:42,430
所以你一定要小心
6761
04:40:42,900 --> 04:40:44,200
如果我现在运行所有这些
6762
04:40:44,370 --> 04:40:46,970
我们仍然没有得到正确的行为
6763
04:40:47,130 --> 04:40:48,730
所以让我再搬过去
6764
04:40:48,730 --> 04:40:51,430
我仍然可以射击并拥有手榴弹
6765
04:40:51,570 --> 04:40:54,030
但我们仍然没有发生碰撞
6766
04:40:54,400 --> 04:40:57,570
我想你很容易理解为什么
6767
04:41:00,570 --> 04:41:03,000
如果我们看一下这个单独的图块
6768
04:41:03,630 --> 04:41:05,130
古道大致知道
6769
04:41:05,130 --> 04:41:07,200
将会发生某种碰撞
6770
04:41:07,200 --> 04:41:09,000
因为我们设置了碰撞层
6771
04:41:09,000 --> 04:41:10,330
和碰撞掩模
6772
04:41:10,500 --> 04:41:11,630
古道不知道什么
6773
04:41:11,630 --> 04:41:14,200
是可以碰撞的区域
6774
04:41:14,570 --> 04:41:17,830
古多看到的只是这里有一个图像
6775
04:41:18,100 --> 04:41:19,830
但这可能意味着任何事情
6776
04:41:19,830 --> 04:41:21,930
例如,我们可能想要发生碰撞
6777
04:41:21,930 --> 04:41:23,630
在更大的区域
6778
04:41:24,030 --> 04:41:27,600
因此我们必须在碰撞区域中绘制
6779
04:41:27,800 --> 04:41:32,730
对于瓷砖组的内部,我们有油漆
6780
04:41:32,930 --> 04:41:34,030
它叫做油漆
6781
04:41:34,030 --> 04:41:35,730
因为我们实际上画了一个区域
6782
04:41:35,730 --> 04:41:37,200
我们希望碰撞发生的地方
6783
04:41:37,200 --> 04:41:39,500
让我稍微扩展一下这一切
6784
04:41:40,230 --> 04:41:41,600
我想做的事
6785
04:41:41,600 --> 04:41:43,500
我想单击选择属性编辑器
6786
04:41:43,500 --> 04:41:45,700
现在我们有了物理层 0
6787
04:41:45,700 --> 04:41:46,730
如果我点击那个
6788
04:41:47,500 --> 04:41:50,370
并在图块集上缩小一点
6789
04:41:50,530 --> 04:41:52,570
他们可以看到整个图块集
6790
04:41:52,800 --> 04:41:56,900
如果我再次放大外部瓷砖
6791
04:41:57,370 --> 04:41:59,630
如果我点击这个角块
6792
04:42:00,530 --> 04:42:02,800
我们得到了整个碰撞区域
6793
04:42:03,030 --> 04:42:04,630
这意味着现在
6794
04:42:04,630 --> 04:42:06,970
所有这些都可能与
6795
04:42:07,130 --> 04:42:08,730
这也不是我们想要的
6796
04:42:09,930 --> 04:42:11,300
所有这一切
6797
04:42:11,300 --> 04:42:13,770
并且这个内部位不应该是可碰撞的
6798
04:42:13,770 --> 04:42:15,230
我们只想发生碰撞
6799
04:42:15,230 --> 04:42:16,530
围绕实际的墙
6800
04:42:16,730 --> 04:42:20,130
左边有一个绘画区
6801
04:42:20,400 --> 04:42:21,700
你可以在哪里画画
6802
04:42:21,700 --> 04:42:23,700
或者更确切地说选择一个区域
6803
04:42:23,830 --> 04:42:25,500
你想要发生碰撞的
6804
04:42:25,900 --> 04:42:27,830
你有很多要点
6805
04:42:27,830 --> 04:42:29,300
你想四处走动
6806
04:42:30,530 --> 04:42:33,300
现在我们没有足够的点来绘制曲线
6807
04:42:33,300 --> 04:42:36,130
但如果你点击两点之间的路径
6808
04:42:36,130 --> 04:42:37,770
您可以添加更多积分
6809
04:42:38,130 --> 04:42:40,200
你拥有的数量没有真正的限制
6810
04:42:40,200 --> 04:42:41,000
所以
6811
04:42:41,530 --> 04:42:43,930
尽情地工作
6812
04:42:43,930 --> 04:42:46,400
你可以用这个变得非常精致
6813
04:42:48,800 --> 04:42:50,130
就像是
6814
04:42:51,170 --> 04:42:52,370
这看起来不错
6815
04:42:52,730 --> 04:42:54,330
现在我实际上有一个区域
6816
04:42:54,330 --> 04:42:55,700
想要发生碰撞
6817
04:42:55,700 --> 04:42:57,530
如果我现在再次点击该图块
6818
04:42:57,770 --> 04:42:59,230
这看起来好多了
6819
04:42:59,970 --> 04:43:02,500
如果我再次运行游戏
6820
04:43:02,800 --> 04:43:05,030
并前往该地区
6821
04:43:05,500 --> 04:43:07,630
我应该把房子安置得更近一些,但是
6822
04:43:08,570 --> 04:43:09,570
我希望你能明白
6823
04:43:10,100 --> 04:43:12,830
这不是我们需要的曲线
6824
04:43:12,830 --> 04:43:14,170
我想是这个
6825
04:43:15,500 --> 04:43:18,570
不,我们走吧
6826
04:43:18,570 --> 04:43:20,030
我们在右边的角落
6827
04:43:20,030 --> 04:43:23,930
现在我们可以看到我不能比这个领域更进一步了
6828
04:43:23,930 --> 04:43:26,170
所以这工作得很好
6829
04:43:26,830 --> 04:43:29,170
现在因为我们没有其他的碰撞区域
6830
04:43:29,170 --> 04:43:31,170
瓷砖这不能完美地工作
6831
04:43:31,300 --> 04:43:33,400
但这是我们可以做得很好的事情
6832
04:43:33,900 --> 04:43:34,330
虽然
6833
04:43:34,330 --> 04:43:37,170
在所有这些区域绘图可能有点麻烦
6834
04:43:37,170 --> 04:43:39,030
但有一些工具可以让这变得更容易
6835
04:43:39,030 --> 04:43:41,630
所以现在我有这个绘图区域
6836
04:43:41,630 --> 04:43:43,300
如果我点击另一个图块
6837
04:43:43,530 --> 04:43:45,400
我们得到的面积实际上是相同的
6838
04:43:45,400 --> 04:43:47,130
不再适合了
6839
04:43:47,570 --> 04:43:49,000
然而你能做什么
6840
04:43:49,000 --> 04:43:51,700
点击这三个点然后
6841
04:43:51,700 --> 04:43:53,300
水平翻转
6842
04:43:53,600 --> 04:43:54,900
现在又合适了
6843
04:43:55,830 --> 04:43:58,970
然后我可以对另一个角做同样的事情
6844
04:43:58,970 --> 04:44:00,900
现在垂直翻转
6845
04:44:01,630 --> 04:44:03,530
再次点击图块即可
6846
04:44:03,970 --> 04:44:06,570
终于在最后一个弯道我可以再次做这一切
6847
04:44:06,570 --> 04:44:08,170
然后再次水平翻转
6848
04:44:08,200 --> 04:44:09,170
我们就这样吧
6849
04:44:09,500 --> 04:44:10,770
现在我们有了四个角
6850
04:44:10,770 --> 04:44:13,100
哪些是最耗时的
6851
04:44:14,800 --> 04:44:16,600
对于这些直线
6852
04:44:16,600 --> 04:44:19,300
我们可以删除几个点
6853
04:44:19,300 --> 04:44:21,830
让我摆脱他们中的大多数
6854
04:44:22,330 --> 04:44:24,700
然后简单地移动东西
6855
04:44:24,700 --> 04:44:26,400
我不是故意要删除这个的
6856
04:44:29,900 --> 04:44:32,730
我只是想移动点
6857
04:44:33,630 --> 04:44:35,400
显然再一次
6858
04:44:35,400 --> 04:44:36,330
这是某事
6859
04:44:36,370 --> 04:44:38,900
对于您确实想花一些时间的实际游戏
6860
04:44:39,230 --> 04:44:41,400
但我不太关心这个
6861
04:44:41,400 --> 04:44:44,970
所以就我而言,我会稍微加快速度
6862
04:44:45,600 --> 04:44:47,130
所以这个看起来不错
6863
04:44:48,300 --> 04:44:50,970
现在如果我再次运行这一切
6864
04:44:51,370 --> 04:44:54,530
我再次需要四处走走
6865
04:44:54,800 --> 04:44:55,600
但
6866
04:44:56,370 --> 04:44:58,170
至少对于外部世界来说
6867
04:44:58,170 --> 04:45:00,230
这工作得很好
6868
04:45:04,200 --> 04:45:07,570
很酷,接下来我们还有一些瓷砖
6869
04:45:07,570 --> 04:45:09,770
我们有这些门放大器 d 位
6870
04:45:11,200 --> 04:45:14,770
为此,让我在该区域画画
6871
04:45:18,170 --> 04:45:20,170
所以这看起来大致不错
6872
04:45:20,730 --> 04:45:23,600
然后对于另一位我想要这一位
6873
04:45:23,730 --> 04:45:25,570
然后垂直翻转
6874
04:45:25,630 --> 04:45:26,630
然后我们就完成了
6875
04:45:27,100 --> 04:45:28,430
终于有了这块瓷砖
6876
04:45:28,430 --> 04:45:31,900
我们必须创建两个完全可行的区域
6877
04:45:31,900 --> 04:45:35,730
所以我所要做的就是在其中添加另一个形状
6878
04:45:35,900 --> 04:45:37,200
像这样的东西
6879
04:45:37,200 --> 04:45:40,430
现在,如果我点击图块,我们就会有两个区域
6880
04:45:40,430 --> 04:45:42,000
他们并不完美
6881
04:45:42,330 --> 04:45:43,130
但
6882
04:45:43,570 --> 04:45:45,570
这只是一点点改进
6883
04:45:46,030 --> 04:45:46,930
你可以做什么
6884
04:45:46,930 --> 04:45:49,700
如果您按住 ctrl 或命令并使用滚轮
6885
04:45:49,700 --> 04:45:50,700
你可以放大
6886
04:45:50,700 --> 04:45:52,200
然后用鼠标中键
6887
04:45:52,200 --> 04:45:53,170
你可以四处走动
6888
04:45:53,170 --> 04:45:55,700
所以感觉好一点了
6889
04:45:57,400 --> 04:46:00,770
接下来我们有左和右
6890
04:46:01,030 --> 04:46:04,970
为此我想正确旋转一切
6891
04:46:06,900 --> 04:46:08,230
并选择这两个
6892
04:46:08,230 --> 04:46:11,200
然后我可以在适当的地方删除
6893
04:46:11,730 --> 04:46:14,030
这部分我们已经快完成了
6894
04:46:14,700 --> 04:46:15,930
好的,我们走吧
6895
04:46:16,430 --> 04:46:17,530
这是第一个吗
6896
04:46:18,630 --> 04:46:19,830
现在可以点击另一个
6897
04:46:19,830 --> 04:46:22,400
然后水平翻转
6898
04:46:22,530 --> 04:46:23,330
我们去吧
6899
04:46:23,530 --> 04:46:27,100
现在我们有了外墙的所有碰撞部分
6900
04:46:28,000 --> 04:46:31,130
不幸的是我们还有另一部分
6901
04:46:31,200 --> 04:46:34,430
这就是内壁的所有碰撞部分
6902
04:46:34,900 --> 04:46:37,230
这将是你的练习
6903
04:46:37,230 --> 04:46:39,970
画出所有这些区域,如果你完成了
6904
04:46:40,100 --> 04:46:40,930
你很好
6905
04:46:40,930 --> 04:46:41,800
有一些非常好的
6906
04:46:41,800 --> 04:46:43,770
练习在这些区域进行绘画
6907
04:46:44,400 --> 04:46:47,200
不幸的是这是一种重复性的工作
6908
04:46:47,200 --> 04:46:49,230
你只需要克服它
6909
04:46:49,530 --> 04:46:51,770
幸运的是,虽然这并不是特别困难
6910
04:46:52,030 --> 04:46:54,170
就我而言,我将加快这一切
6911
04:46:54,170 --> 04:46:56,100
因为观看起来会很无聊
6912
04:47:09,930 --> 04:47:10,530
好吧
6913
04:47:10,530 --> 04:47:13,730
这将涵盖所有的内心世界
6914
04:47:13,730 --> 04:47:16,770
我希望你也能自己完成这一切
6915
04:47:17,730 --> 04:47:19,570
我想我应该早点提到
6916
04:47:19,570 --> 04:47:20,370
有
6917
04:47:20,500 --> 04:47:23,500
您可以通过三种方式交互和绘制这些区域
6918
04:47:23,770 --> 04:47:25,330
你已经添加了多边形工具
6919
04:47:25,370 --> 04:47:28,200
您已添加积分并已删除
6920
04:47:28,230 --> 04:47:30,300
您最想使用的是中间的那个
6921
04:47:30,300 --> 04:47:32,700
添加积分,因为这个可以让你
6922
04:47:32,700 --> 04:47:34,970
如果您只是将鼠标悬停添加也可以添加点
6923
04:47:34,970 --> 04:47:36,530
所以这很容易
6924
04:47:37,170 --> 04:47:38,630
如果你只是玩弄这一切
6925
04:47:38,630 --> 04:47:40,370
它应该相当简单
6926
04:47:40,630 --> 04:47:42,130
但没关系
6927
04:47:43,730 --> 04:47:45,200
让我缩小
6928
04:47:45,200 --> 04:47:48,170
保存它,现在在关卡内
6929
04:47:48,430 --> 04:47:50,400
我要搬家了
6930
04:47:50,770 --> 04:47:52,500
地面内部
6931
04:47:52,500 --> 04:47:53,400
我们有房子
6932
04:47:53,400 --> 04:47:55,500
我要把它移得离玩家更近一点
6933
04:47:55,500 --> 04:47:57,000
所以我不用走那么多路
6934
04:47:59,100 --> 04:48:02,930
这样外部碰撞仍然有效
6935
04:48:03,770 --> 04:48:05,130
大门也能工作
6936
04:48:05,130 --> 04:48:08,500
内心世界也运转良好
6937
04:48:08,500 --> 04:48:10,170
让我们再尝试一些
6938
04:48:10,370 --> 04:48:11,770
这感觉真好
6939
04:48:12,330 --> 04:48:13,130
现在
6940
04:48:13,330 --> 04:48:16,570
这里有一件事你必须稍微注意一下
6941
04:48:16,900 --> 04:48:20,700
也就是说,如果我重新打开瓦片地图
6942
04:48:22,800 --> 04:48:24,700
并返回到
6943
04:48:25,500 --> 04:48:28,000
一套瓷砖和绘画
6944
04:48:28,570 --> 04:48:31,630
你要非常小心,当你有
6945
04:48:32,400 --> 04:48:33,200
A
6946
04:48:33,900 --> 04:48:35,000
他们看得很清楚
6947
04:48:35,170 --> 04:48:38,600
所以现在对于这个我们有一点差距
6948
04:48:38,630 --> 04:48:40,170
就是现在
6949
04:48:40,170 --> 04:48:41,530
如此微小以至于你不会真的
6950
04:48:41,530 --> 04:48:43,130
在游戏中注意它
6951
04:48:43,500 --> 04:48:45,300
但如果这变得足够大
6952
04:48:45,300 --> 04:48:47,130
这可能是玩家或
6953
04:48:47,130 --> 04:48:48,800
敌人可能会陷入困境
6954
04:48:49,130 --> 04:48:51,570
这确实是不一致的行为
6955
04:48:51,730 --> 04:48:54,330
哦,我刚刚意识到我有点搞砸了
6956
04:48:54,370 --> 04:48:55,170
这不应该发生
6957
04:48:56,400 --> 04:48:57,530
所以当你创建时
6958
04:48:57,530 --> 04:49:00,330
特别是对于墙壁这些碰撞形状
6959
04:49:00,330 --> 04:49:01,600
你要非常小心
6960
04:49:01,600 --> 04:49:02,770
你实际上可以看到
6961
04:49:03,400 --> 04:49:07,030
这种形状并不理想
6962
04:49:07,170 --> 04:49:09,630
因为如果玩家来自一侧
6963
04:49:09,800 --> 04:49:12,730
所以如果玩家来自这个区域
6964
04:49:12,830 --> 04:49:14,630
我们可能会发生碰撞
6965
04:49:15,000 --> 04:49:17,730
对于这一点,然后游戏认为有一个角落
6966
04:49:17,730 --> 04:49:19,570
但实际上并没有
6967
04:49:20,730 --> 04:49:22,200
所以当你绘制这些区域时
6968
04:49:22,200 --> 04:49:24,930
只是要知道你确实想要一些非常
6969
04:49:24,930 --> 04:49:26,400
非常详细的形状
6970
04:49:26,400 --> 04:49:28,500
这是你绝对想要做的事情
6971
04:49:28,500 --> 04:49:29,300
就一点
6972
04:49:30,030 --> 04:49:31,630
在我的教程演员阵容中
6973
04:49:31,630 --> 04:49:33,400
这真的不重要
6974
04:49:33,970 --> 04:49:36,630
接下来我们还有另一个非常重要的部分
6975
04:49:36,630 --> 04:49:39,300
让我把房子搬到远一点的地方
6976
04:49:39,400 --> 04:49:41,000
所以看起来不会太局促
6977
04:49:41,800 --> 04:49:45,000
下一部分让游戏看起来确实不错
6978
04:49:45,170 --> 04:49:47,030
我想谈谈粒子
6979
04:49:47,500 --> 04:49:49,630
和粒子基本上
6980
04:49:49,630 --> 04:49:52,130
动态生成的小对象
6981
04:49:52,300 --> 04:49:54,100
最好的例子是
6982
04:49:54,170 --> 04:49:56,530
我们将在这部分创建一些烟雾
6983
04:49:56,800 --> 04:49:58,000
为了那烟
6984
04:49:58,000 --> 04:50:00,200
我们将创建很多小点
6985
04:50:00,200 --> 04:50:01,300
然后将它们组合起来
6986
04:50:01,300 --> 04:50:01,830
直到玩家
6987
04:50:01,830 --> 04:50:03,370
这看起来像烟雾
6988
04:50:03,570 --> 04:50:06,300
我们还将为激光添加一些视觉效果
6989
04:50:06,300 --> 04:50:08,570
几乎特别是当激光器关闭时
6990
04:50:08,930 --> 04:50:10,030
我认为扩大这一切
6991
04:50:10,030 --> 04:50:11,970
练习会容易得多
6992
04:50:11,970 --> 04:50:14,430
所以让我们直接跳进好门
6993
04:50:15,000 --> 04:50:16,230
我们回到编辑器了
6994
04:50:16,230 --> 04:50:18,800
我想创建一个新场景
6995
04:50:19,000 --> 04:50:20,430
还有这个新场景
6996
04:50:20,430 --> 04:50:24,300
因为基节点将得到一个静态物体 2d
6997
04:50:24,770 --> 04:50:28,030
让我们将其重命名为 Steam Vent
6998
04:50:28,600 --> 04:50:30,800
然后我可以立即保存
6999
04:50:30,900 --> 04:50:33,330
在场景下我们有物体
7000
04:50:33,330 --> 04:50:35,130
我想要在那里有蒸汽通风口
7001
04:50:36,330 --> 04:50:39,300
现在这个将得到一个精灵
7002
04:50:39,830 --> 04:50:42,300
以及我们可以在图形下得到的精灵
7003
04:50:42,300 --> 04:50:45,500
在那里我们有物体
7004
04:50:45,500 --> 04:50:50,230
在物体下面我们一直在底部
7005
04:50:50,370 --> 04:50:51,600
一个通风孔
7006
04:50:51,900 --> 04:50:53,700
所以我想把它拖到那里
7007
04:50:55,330 --> 04:50:57,830
这将简单地给我们带来
7008
04:50:58,370 --> 04:50:59,770
一个通风孔
7009
04:50:59,770 --> 04:51:02,300
现在在我们开始实际粒子之前
7010
04:51:02,300 --> 04:51:04,230
我想给它一个碰撞形状
7011
04:51:04,230 --> 04:51:06,900
这里的形状应该相当简单
7012
04:51:06,970 --> 04:51:09,000
这需要有一个碰撞形状
7013
04:51:09,000 --> 04:51:11,730
形状应该是圆形
7014
04:51:12,300 --> 04:51:15,700
让我们或多或少准确地对齐它
7015
04:51:15,900 --> 04:51:16,770
这看起来不错
7016
04:51:17,900 --> 04:51:18,170
还
7017
04:51:18,170 --> 04:51:20,530
我想将碰撞形状移到精灵后面
7018
04:51:20,530 --> 04:51:23,030
这样我们就可以更好地了解正在发生的事情
7019
04:51:23,700 --> 04:51:24,930
现在这种
7020
04:51:24,930 --> 04:51:26,830
物体会看起来非常无聊
7021
04:51:26,830 --> 04:51:27,970
游戏内部
7022
04:51:28,100 --> 04:51:29,400
并让它变得更有趣
7023
04:51:29,400 --> 04:51:31,530
我想产生烟雾
7024
04:51:31,770 --> 04:51:33,300
移动像这样的东西
7025
04:51:33,300 --> 04:51:35,930
所以我们有烟从这里冒出来
7026
04:51:35,930 --> 04:51:37,830
并朝着某个方向移动
7027
04:51:38,430 --> 04:51:40,230
并创造出类似烟雾的东西
7028
04:51:40,230 --> 04:51:42,370
我们需要一个粒子发射器
7029
04:51:43,370 --> 04:51:45,330
和戈多的其他一切一样
7030
04:51:45,330 --> 04:51:47,230
这将是另一个节点
7031
04:51:47,230 --> 04:51:49,000
所以选择蒸汽口
7032
04:51:49,030 --> 04:51:50,830
我单击 Ctrl 或命令 a
7033
04:51:51,000 --> 04:51:53,600
现在我输入粒子
7034
04:51:53,900 --> 04:51:56,800
我们有CPU颗粒和GPU颗粒
7035
04:51:56,800 --> 04:51:58,370
至少在二维空间中
7036
04:51:58,970 --> 04:52:00,400
3d 空间内部
7037
04:52:00,400 --> 04:52:02,770
所有这一切都变得更加复杂
7038
04:52:02,770 --> 04:52:05,230
但在我们的例子中我们只有两个节点
7039
04:52:05,830 --> 04:52:07,400
如果你看一下描述
7040
04:52:07,400 --> 04:52:09,900
我们得到了一个基于 CPU 的粒子发射器
7041
04:52:09,900 --> 04:52:12,700
或基于 GPU 的粒子发射器
7042
04:52:13,630 --> 04:52:14,770
现在你可能想知道
7043
04:52:14,770 --> 04:52:17,230
这两个有什么区别
7044
04:52:17,300 --> 04:52:19,370
好吧,如果你要创建很多粒子
7045
04:52:19,370 --> 04:52:21,530
你希望它们在 GPU 上运行
7046
04:52:21,700 --> 04:52:23,000
因为GPU是
7047
04:52:23,000 --> 04:52:24,000
更强大
7048
04:52:24,000 --> 04:52:27,030
并且更擅长处理此类颗粒
7049
04:52:27,600 --> 04:52:28,500
很遗憾
7050
04:52:28,500 --> 04:52:30,830
你并不总是有可用的显卡
7051
04:52:31,030 --> 04:52:31,430
例如
7052
04:52:31,430 --> 04:52:33,830
当你制作手机游戏或浏览器游戏时
7053
04:52:34,100 --> 04:52:36,770
您可能必须使用功能较弱的硬件
7054
04:52:36,900 --> 04:52:39,630
为此,您将使用 CPU 粒子
7055
04:52:39,830 --> 04:52:42,570
但在我们的例子中,我们正在为电脑制作游戏
7056
04:52:42,570 --> 04:52:44,430
所以我想使用GPU粒子
7057
04:52:45,000 --> 04:52:47,000
基本上你想要思考的方式是
7058
04:52:47,000 --> 04:52:49,230
CPU颗粒适用于较弱的系统
7059
04:52:49,230 --> 04:52:51,530
GPU 粒子适用于其他一切
7060
04:52:51,570 --> 04:52:54,170
那么让我们使用 GPU 粒子 2D
7061
04:52:54,630 --> 04:52:57,370
我可以点击创建,但什么也没发生
7062
04:52:58,230 --> 04:52:59,100
使某事发生
7063
04:52:59,300 --> 04:53:02,170
我们必须看检查器的右侧
7064
04:53:02,600 --> 04:53:04,630
其中最重要的属性
7065
04:53:04,630 --> 04:53:06,200
是工艺材料
7066
04:53:06,200 --> 04:53:08,300
现在这个是空的
7067
04:53:08,300 --> 04:53:10,030
我们可以给它一个着色器材质
7068
04:53:10,030 --> 04:53:12,300
或粒子处理材料
7069
04:53:12,400 --> 04:53:14,500
第二个是我们想要追求的目标
7070
04:53:15,400 --> 04:53:17,970
现在我们可以真正看到一些东西
7071
04:53:18,600 --> 04:53:21,730
我们有几个粒子朝一个方向运动
7072
04:53:23,130 --> 04:53:25,230
这可以说不是特别有帮助
7073
04:53:25,230 --> 04:53:27,570
但我们可以对所有这些进行大量定制
7074
04:53:27,930 --> 04:53:30,430
如果你点击粒子处理材质
7075
04:53:30,630 --> 04:53:33,100
在那里我们有一大堆选择
7076
04:53:33,800 --> 04:53:34,300
例如
7077
04:53:34,300 --> 04:53:36,370
我们可以做的是设置发射形状
7078
04:53:36,370 --> 04:53:37,730
现在这是一个重点
7079
04:53:37,930 --> 04:53:40,700
这意味着所有粒子都是从这个粒子发射的
7080
04:53:40,700 --> 04:53:44,570
点但就我而言我想要一个球体
7081
04:53:44,800 --> 04:53:47,770
这个球体应该有一定的大小
7082
04:53:47,930 --> 04:53:51,030
取决于你想要这个区域有多大
7083
04:53:51,230 --> 04:53:53,800
所以我认为比这个小一点应该没问题
7084
04:53:54,600 --> 04:53:56,430
是的,这个看起来更好
7085
04:53:57,300 --> 04:53:59,200
如果你想让粒子停止下落
7086
04:53:59,200 --> 04:54:01,230
你想看看重力
7087
04:54:01,430 --> 04:54:03,830
我们有 0 98 和 0
7088
04:54:04,170 --> 04:54:06,570
如果我将所有这些设置为 0 0 和 0
7089
04:54:06,700 --> 04:54:08,170
我们根本没有任何动静
7090
04:54:08,830 --> 04:54:12,770
就我而言,我希望粒子移动到顶部
7091
04:54:12,770 --> 04:54:14,630
对所以这个方向
7092
04:54:15,230 --> 04:54:17,430
为此我想让 X 为正
7093
04:54:17,430 --> 04:54:19,330
假设我认识 50 个
7094
04:54:19,730 --> 04:54:22,830
然后我希望它们上涨,这将是负值
7095
04:54:22,830 --> 04:54:24,170
我知道假设是 45
7096
04:54:24,200 --> 04:54:25,600
只是有一些随机数
7097
04:54:27,800 --> 04:54:30,970
这样我们就已经得到了一些更好的行为
7098
04:54:30,970 --> 04:54:32,530
所以这看起来并不可怕
7099
04:54:32,530 --> 04:54:33,600
好吧,看起来还是很糟糕
7100
04:54:33,600 --> 04:54:35,330
但看起来没有以前那么可怕了
7101
04:54:36,570 --> 04:54:37,900
使这一切看起来如此的一种方法
7102
04:54:37,900 --> 04:54:40,030
更好的是看看这个规模
7103
04:54:40,200 --> 04:54:40,900
因为在那里
7104
04:54:40,900 --> 04:54:43,200
我们有最小规模和最大规模
7105
04:54:43,200 --> 04:54:45,530
Godo 将在两者之间选择一个随机数
7106
04:54:45,830 --> 04:54:47,130
现在他们都是 1
7107
04:54:47,130 --> 04:54:48,930
所以我们的尺度始终为 1
7108
04:54:48,930 --> 04:54:51,200
但如果我把它做得更大
7109
04:54:51,600 --> 04:54:53,170
我们的行为变得更好了
7110
04:54:53,570 --> 04:54:55,530
所以这肯定是在一起的
7111
04:54:56,330 --> 04:54:58,630
如果我现在回到原来的水平
7112
04:54:58,770 --> 04:55:02,130
并在现场选择地面模式
7113
04:55:02,200 --> 04:55:04,130
我想添加这个主题通风口
7114
04:55:04,500 --> 04:55:06,400
我想要这个
7115
04:55:06,770 --> 04:55:08,170
让我移动它
7116
04:55:09,900 --> 04:55:11,400
我们暂时把它放在某个地方
7117
04:55:11,500 --> 04:55:12,900
如果我现在再次运行游戏
7118
04:55:13,930 --> 04:55:15,730
我们有一个蒸汽出口
7119
04:55:15,730 --> 04:55:18,130
虽然现在看起来并不令人惊奇
7120
04:55:18,130 --> 04:55:21,400
但我想你可以通过各种方式知道发生了什么
7121
04:55:21,770 --> 04:55:22,570
有些
7122
04:55:23,530 --> 04:55:25,170
我们现在面临的主要问题
7123
04:55:25,170 --> 04:55:27,000
是我们总是有一个正方形
7124
04:55:27,000 --> 04:55:28,700
所以这不太好
7125
04:55:28,700 --> 04:55:29,930
这是我们无法改变的
7126
04:55:29,930 --> 04:55:31,530
工艺材料内部
7127
04:55:31,530 --> 04:55:33,300
所以我现在想最小化
7128
04:55:33,530 --> 04:55:36,000
相反,我们需要的是纹理
7129
04:55:36,630 --> 04:55:39,630
纹理将是一个图像
7130
04:55:40,100 --> 04:55:41,200
所以在
7131
04:55:41,730 --> 04:55:46,170
我想我把它放在贴花上,那里有白色的PNG
7132
04:55:46,530 --> 04:55:48,130
这是我想使用的图形
7133
04:55:48,630 --> 04:55:51,930
要使用它,我只需将它拖到纹理中
7134
04:55:52,230 --> 04:55:56,330
现在我们遇到了一些非常奇怪的行为
7135
04:55:56,770 --> 04:55:58,330
发生这种情况的原因是因为
7136
04:55:58,330 --> 04:56:00,000
图形太大
7137
04:56:01,300 --> 04:56:04,300
或者更具体地说是在工艺材料内部
7138
04:56:04,300 --> 04:56:08,400
在比例下,我们的最大比例太大了
7139
04:56:08,500 --> 04:56:10,200
让我们将其设置为 3
7140
04:56:10,330 --> 04:56:12,230
这会感觉好多了
7141
04:56:13,400 --> 04:56:16,770
这看起来更像是真正的蒸汽
7142
04:56:16,770 --> 04:56:18,200
所以让我们再试一次
7143
04:56:19,300 --> 04:56:21,930
我们正在取得进展
7144
04:56:21,930 --> 04:56:24,030
仍然不够惊人,但肯定更好
7145
04:56:25,630 --> 04:56:27,770
我想现在最重要的是
7146
04:56:27,770 --> 04:56:30,330
是我们没有那么多点
7147
04:56:30,330 --> 04:56:33,100
为此,金额一直位于顶部
7148
04:56:33,100 --> 04:56:34,530
我想将其设置为
7149
04:56:34,530 --> 04:56:35,630
我们走二十个吧
7150
04:56:36,930 --> 04:56:39,400
这感觉好一点了
7151
04:56:40,630 --> 04:56:42,100
你可以做的另一件事
7152
04:56:42,100 --> 04:56:43,600
如果你看颜色
7153
04:56:43,900 --> 04:56:46,100
我们有颜色和色带
7154
04:56:46,100 --> 04:56:50,100
例如你可以稍微改变不透明度
7155
04:56:51,170 --> 04:56:53,800
然后让所有这些都变暗
7156
04:56:54,900 --> 04:56:57,630
我认为我们确实需要更多的点
7157
04:56:57,630 --> 04:57:00,170
所以我们不要 20,而是 60
7158
04:57:01,330 --> 04:57:04,700
甚至可能更高,也许 100
7159
04:57:07,130 --> 04:57:09,700
这可能感觉好一点
7160
04:57:10,030 --> 04:57:12,200
我还可以做的是降低不透明度
7161
04:57:12,430 --> 04:57:14,400
然后看看感觉如何
7162
04:57:14,770 --> 04:57:16,200
当谈到粒子系统时
7163
04:57:16,200 --> 04:57:18,230
你确实很想玩
7164
04:57:18,230 --> 04:57:20,170
你可以做很多事情
7165
04:57:20,330 --> 04:57:21,370
所以所有这些选项
7166
04:57:21,370 --> 04:57:23,330
你可以和他们一起玩看看
7167
04:57:23,370 --> 04:57:24,330
你喜欢什么
7168
04:57:25,130 --> 04:57:27,300
你经常看到的是坡道
7169
04:57:27,300 --> 04:57:29,330
所以在这种情况下色带
7170
04:57:30,100 --> 04:57:32,630
这个现在在做什么它是空的
7171
04:57:32,630 --> 04:57:34,730
如果我给它一个新的渐变纹理
7172
04:57:34,730 --> 04:57:37,530
1d 然后我们会得到一些奇怪的行为
7173
04:57:37,900 --> 04:57:38,200
和
7174
04:57:38,200 --> 04:57:41,330
这个正在做的是当一个粒子产生时
7175
04:57:41,370 --> 04:57:42,600
它以黑色开头
7176
04:57:42,600 --> 04:57:44,630
然后随着时间的推移它会变成白色
7177
04:57:45,230 --> 04:57:48,130
我们可以改变这个,所以如果我点击它并且
7178
04:57:48,730 --> 04:57:50,700
双击我们会得到另一种颜色
7179
04:57:50,930 --> 04:57:53,000
假设我想要一个粒子开始
7180
04:57:54,130 --> 04:57:57,530
白色 白色,全透明
7181
04:57:57,700 --> 04:57:59,170
然后到最后
7182
04:57:59,430 --> 04:58:01,100
所以我点击结束位
7183
04:58:01,630 --> 04:58:05,530
我希望透明度基本上完全消失
7184
04:58:06,400 --> 04:58:08,930
让旋转变成更深的颜色
7185
04:58:10,800 --> 04:58:12,630
在那里你可以看到我们有一个新的渐变
7186
04:58:12,630 --> 04:58:15,530
这给了我们一种不同的行为
7187
04:58:16,530 --> 04:58:18,730
那应该是
7188
04:58:20,600 --> 04:58:23,630
游戏内部的良好行为
7189
04:58:23,970 --> 04:58:25,930
所以再一次对于这种事情
7190
04:58:25,930 --> 04:58:27,700
你确实很想玩
7191
04:58:27,700 --> 04:58:29,800
获得您想要的外观
7192
04:58:31,170 --> 04:58:32,570
你也可以改变比例
7193
04:58:32,570 --> 04:58:34,200
并给这个曲线
7194
04:58:34,600 --> 04:58:37,930
但就我而言,我认为颜色有点太浓了
7195
04:58:37,930 --> 04:58:39,700
所以让我
7196
04:58:40,370 --> 04:58:41,600
如果有一点
7197
04:58:42,370 --> 04:58:45,770
更多的不透明度,尤其是接近尾声时
7198
04:58:46,830 --> 04:58:48,770
这可能有点太低了
7199
04:58:49,570 --> 04:58:51,570
然后颜色可以亮一点
7200
04:58:52,200 --> 04:58:55,130
然后我也想要重力
7201
04:58:55,200 --> 04:58:56,370
移动速度稍快
7202
04:58:56,370 --> 04:58:58,300
所以我想要 100,而不是 50
7203
04:58:58,730 --> 04:59:02,170
我想要负数而不是负数 45
7204
04:59:02,930 --> 04:59:03,730
150
7205
04:59:05,230 --> 04:59:08,530
除此之外,发射形状可能会更大一些
7206
04:59:09,770 --> 04:59:11,830
所以这感觉更好
7207
04:59:12,170 --> 04:59:15,400
然后对于粒子数量,我们选择 200
7208
04:59:16,730 --> 04:59:17,900
我们就这样吧
7209
04:59:17,930 --> 04:59:19,830
这结合得更好
7210
04:59:20,230 --> 04:59:23,570
这样我们就有了一些动力
7211
04:59:25,800 --> 04:59:27,530
以及您真正想了解的内容
7212
04:59:27,530 --> 04:59:30,200
你正在产生大量的粒子
7213
04:59:30,370 --> 04:59:33,030
如果你有合适的 GPU
7214
04:59:33,300 --> 04:59:35,130
这不会是太多短信
7215
04:59:35,130 --> 04:59:36,970
尤其是在二维环境中
7216
04:59:37,200 --> 04:59:38,370
但仍然
7217
04:59:38,370 --> 04:59:40,830
你确实想了解表演
7218
04:59:40,930 --> 04:59:43,200
所以请谨慎使用
7219
04:59:44,100 --> 04:59:45,130
一个好方法
7220
04:59:45,130 --> 04:59:47,600
就是只有一定数量的颗粒
7221
04:59:49,600 --> 04:59:53,900
200 仍然可以,但在你自己的游戏中测试这个很多
7222
04:59:54,100 --> 04:59:55,200
改变粒子数量
7223
04:59:55,200 --> 04:59:56,570
可以产生巨大的影响
7224
04:59:56,970 --> 04:59:59,570
我想我还应该提到我们有时间
7225
04:59:59,570 --> 05:00:01,970
碰撞图和轨道
7226
05:00:02,200 --> 05:00:04,370
时间是我现在要关注的
7227
05:00:04,370 --> 05:00:06,230
例如,在那里我们有一生
7228
05:00:06,230 --> 05:00:07,400
如果我们延长这一点
7229
05:00:08,230 --> 05:00:10,970
我们得到了寿命更长的粒子
7230
05:00:12,130 --> 05:00:14,830
虽然就我而言我对此并不真正感兴趣
7231
05:00:15,600 --> 05:00:18,330
这还是太长了
7232
05:00:18,930 --> 05:00:22,170
让我们将其添加到 1.5 到某种自定义值
7233
05:00:23,230 --> 05:00:24,830
更重要的是
7234
05:00:24,900 --> 05:00:26,700
您还可以设置一拍
7235
05:00:26,730 --> 05:00:28,900
这是我们稍后要探讨的内容
7236
05:00:28,900 --> 05:00:30,630
但如果我将其设置为打开
7237
05:00:31,300 --> 05:00:34,400
然后我们得到很多粒子然后它们就消失了
7238
05:00:34,400 --> 05:00:37,570
因为我们只生成每个粒子一次
7239
05:00:37,600 --> 05:00:39,930
你可以看到顶部的发射已关闭
7240
05:00:40,000 --> 05:00:41,300
如果我再这样说
7241
05:00:41,800 --> 05:00:44,030
我们得到了所有的粒子,但只得到了一次
7242
05:00:44,030 --> 05:00:45,030
我们就这样吧
7243
05:00:45,800 --> 05:00:47,430
我们可以多次这样做
7244
05:00:47,430 --> 05:00:50,570
我们总是只有一轮粒子
7245
05:00:50,830 --> 05:00:53,400
现在对于这个我不想启用它
7246
05:00:54,170 --> 05:00:56,330
所以我只想启用发射
7247
05:00:56,330 --> 05:00:58,170
并一杆设置为故障
7248
05:00:59,700 --> 05:01:00,430
现在除此之外
7249
05:01:00,430 --> 05:01:02,800
你也可以看看绘图或碰撞
7250
05:01:02,800 --> 05:01:04,730
但所有这些都更先进一点
7251
05:01:04,730 --> 05:01:06,130
所以我会忽略它
7252
05:01:06,770 --> 05:01:08,700
相反,我想让你们做的
7253
05:01:08,730 --> 05:01:12,100
当玩家发射激光时
7254
05:01:12,500 --> 05:01:13,600
播放器内部
7255
05:01:13,800 --> 05:01:15,770
我想让你们产生一些粒子
7256
05:01:15,770 --> 05:01:17,200
与激光一起
7257
05:01:17,530 --> 05:01:20,370
为了让练习更精确一些
7258
05:01:20,400 --> 05:01:22,170
我要你们发射粒子
7259
05:01:22,170 --> 05:01:24,230
当玩家发射激光时
7260
05:01:24,900 --> 05:01:27,000
你可以重复使用相同的纹理
7261
05:01:27,000 --> 05:01:28,570
但要确保你正在改变
7262
05:01:28,570 --> 05:01:30,000
许多其他属性
7263
05:01:30,100 --> 05:01:32,970
比如颜色、缩放比例或持续时间
7264
05:01:33,370 --> 05:01:34,600
看看看起来不错的
7265
05:01:35,030 --> 05:01:38,170
最后一个非常重要的部分是一击
7266
05:01:38,170 --> 05:01:39,570
需要启用
7267
05:01:40,770 --> 05:01:43,200
我们只想产生几个粒子
7268
05:01:43,200 --> 05:01:44,770
当玩家发射激光时
7269
05:01:44,770 --> 05:01:46,830
但它们不应该是连续的
7270
05:01:47,430 --> 05:01:49,100
所以暂停视频
7271
05:01:49,100 --> 05:01:52,170
并尝试实现自己的粒子系统
7272
05:01:55,570 --> 05:01:56,800
所以如果玩家选择
7273
05:01:56,830 --> 05:01:58,330
我想添加另一个节点
7274
05:01:58,330 --> 05:02:00,930
这将是 GPU 粒子 2d
7275
05:02:01,570 --> 05:02:02,500
现在这个
7276
05:02:02,500 --> 05:02:05,500
警告我们没有材料
7277
05:02:05,630 --> 05:02:06,500
为了那个原因
7278
05:02:07,400 --> 05:02:09,330
我想要一份工艺材料
7279
05:02:09,330 --> 05:02:10,730
这将是一个粒子
7280
05:02:10,730 --> 05:02:11,970
工艺材料
7281
05:02:12,600 --> 05:02:15,370
如果我选择了这个,我们会得到
7282
05:02:15,700 --> 05:02:18,400
几乎看不见的颗粒
7283
05:02:18,930 --> 05:02:21,530
我们必须立即做出一项改变
7284
05:02:21,530 --> 05:02:24,130
也就是说这些粒子
7285
05:02:24,300 --> 05:02:26,730
应该在枪的喷嘴处
7286
05:02:26,730 --> 05:02:27,630
基本上在这里
7287
05:02:28,230 --> 05:02:30,500
接下来的方向根本不起作用
7288
05:02:30,500 --> 05:02:32,230
所以这个我们也必须更新
7289
05:02:32,970 --> 05:02:34,370
我们可以很容易做到
7290
05:02:34,370 --> 05:02:36,600
工艺材料内部
7291
05:02:36,600 --> 05:02:39,300
我想更新方向
7292
05:02:40,170 --> 05:02:41,930
虽然更具体一点
7293
05:02:41,930 --> 05:02:44,400
我们有方向,我们有重力
7294
05:02:44,430 --> 05:02:47,530
默认重力应为 00 和 0
7295
05:02:47,600 --> 05:02:49,400
所以粒子根本不移动
7296
05:02:49,570 --> 05:02:51,700
但是我们有一个方向
7297
05:02:51,700 --> 05:02:55,170
现在默认是 10 和 0
7298
05:02:55,170 --> 05:02:58,000
所以我们应该只在 x 轴上移动
7299
05:03:00,130 --> 05:03:03,230
但我们现在根本看不到
7300
05:03:03,930 --> 05:03:07,230
一切都是静态的,所以我们有一个白点
7301
05:03:08,170 --> 05:03:09,030
改变这一点
7302
05:03:09,030 --> 05:03:12,000
我们想给每个粒子一个初始速度
7303
05:03:12,000 --> 05:03:13,030
我们可以做到这一点
7304
05:03:13,030 --> 05:03:15,770
在右边我们有初始速度
7305
05:03:16,130 --> 05:03:17,930
让我们给它一些随机性
7306
05:03:17,930 --> 05:03:19,900
所以像这样
7307
05:03:20,530 --> 05:03:22,600
看起来好多了
7308
05:03:23,570 --> 05:03:24,570
对于这些数字
7309
05:03:24,570 --> 05:03:27,530
在方向内您可以更新此点差
7310
05:03:27,530 --> 05:03:29,700
就我而言,我选择了 15
7311
05:03:30,230 --> 05:03:32,800
这是一个更窄的范围
7312
05:03:32,800 --> 05:03:33,800
但再一次
7313
05:03:33,800 --> 05:03:35,630
只选择你认为好看的
7314
05:03:36,800 --> 05:03:39,730
除此之外,如果我最小化这两个选项卡
7315
05:03:39,730 --> 05:03:42,530
下一个重要部分是我们需要纹理
7316
05:03:42,530 --> 05:03:44,770
我还有白色的PNG
7317
05:03:44,830 --> 05:03:46,530
我想直接在那里
7318
05:03:46,900 --> 05:03:50,530
这样我们就得到了更明显的东西
7319
05:03:50,970 --> 05:03:52,900
所以这是一个好的开始
7320
05:03:52,900 --> 05:03:55,700
让我们尝试一下场景本身
7321
05:03:56,170 --> 05:03:57,930
希望这仍然有效
7322
05:03:58,300 --> 05:03:59,100
和
7323
05:03:59,330 --> 05:04:02,400
是的,这很有用,尤其是当你四处走动时
7324
05:04:02,430 --> 05:04:03,900
这还不能完美工作
7325
05:04:03,900 --> 05:04:05,930
但至少我们得到了一些东西
7326
05:04:06,700 --> 05:04:08,000
我正在寻找的主要东西
7327
05:04:08,100 --> 05:04:11,230
所有这一切都与玩家的方向一致
7328
05:04:11,230 --> 05:04:13,930
所以如果玩家移动或看右上角
7329
05:04:14,100 --> 05:04:16,170
粒子也朝这个方向移动
7330
05:04:17,900 --> 05:04:19,900
他们这样做,这是一个好的开始
7331
05:04:20,730 --> 05:04:21,800
重要的一个
7332
05:04:21,800 --> 05:04:23,830
可能有点挑战的事情
7333
05:04:23,830 --> 05:04:25,900
我们只想产卵
7334
05:04:25,900 --> 05:04:28,630
当玩家发射激光时这些粒子
7335
05:04:28,630 --> 05:04:30,300
为此
7336
05:04:30,330 --> 05:04:33,000
我想设置一次并启用它
7337
05:04:33,300 --> 05:04:34,500
并将其设置为 true
7338
05:04:34,930 --> 05:04:38,400
现在在代码中,所以玩家代码
7339
05:04:38,400 --> 05:04:41,000
我确实想扩展这一点
7340
05:04:41,900 --> 05:04:45,630
每当我们有一个主要操作的输入操作时
7341
05:04:45,630 --> 05:04:46,930
这个 if 语句
7342
05:04:47,030 --> 05:04:49,000
我想发射粒子
7343
05:04:49,400 --> 05:04:50,630
我可以很容易地做到
7344
05:04:50,630 --> 05:04:53,130
我想得到我的粒子节点
7345
05:04:53,730 --> 05:04:56,000
GPU 粒子 2d
7346
05:04:56,400 --> 05:04:59,230
这有一个称为发射的属性
7347
05:04:59,400 --> 05:05:01,400
我想将其设置为 true
7348
05:05:01,630 --> 05:05:03,400
这实际上就是我们所需要的
7349
05:05:03,400 --> 05:05:05,170
所以如果我现在再次运行游戏
7350
05:05:05,500 --> 05:05:06,970
我可以发射激光
7351
05:05:06,970 --> 05:05:08,930
然后我们得到几个粒子
7352
05:05:09,130 --> 05:05:10,800
我可以多次这样做
7353
05:05:10,930 --> 05:05:13,800
我们得到了几个粒子
7354
05:05:14,230 --> 05:05:17,800
所以这是有效的,但粒子看起来很糟糕
7355
05:05:17,800 --> 05:05:19,230
所以这还不太好
7356
05:05:19,430 --> 05:05:20,830
如果我发射多束激光
7357
05:05:20,830 --> 05:05:22,370
这确实不一致
7358
05:05:22,530 --> 05:05:24,700
所以我们必须更新一些东西
7359
05:05:25,300 --> 05:05:27,600
这意味着选择了 GPU 粒子
7360
05:05:27,630 --> 05:05:29,170
我们必须更新
7361
05:05:29,370 --> 05:05:30,000
很多
7362
05:05:30,000 --> 05:05:32,370
这些属性让这一切看起来都很好
7363
05:05:32,900 --> 05:05:35,930
我从初始速度开始
7364
05:05:35,930 --> 05:05:38,370
现在这个水平相当低
7365
05:05:38,370 --> 05:05:42,370
我已将这些数字设置为 750 和 1000
7366
05:05:42,900 --> 05:05:44,770
如果我再次运行这一切
7367
05:05:46,570 --> 05:05:50,330
我们得到的粒子移动得非常非常远,因为
7368
05:05:50,330 --> 05:05:52,930
嗯,我们有一个非常高的初速度
7369
05:05:53,370 --> 05:05:55,370
考虑到这种增加的速度
7370
05:05:55,370 --> 05:05:57,900
我想将每个粒子的寿命设置得很多
7371
05:05:57,900 --> 05:05:58,600
较低的数字
7372
05:05:58,600 --> 05:06:00,400
假设 0.2
7373
05:06:01,130 --> 05:06:02,530
现在如果我再次运行这个
7374
05:06:02,900 --> 05:06:04,000
每个粒子
7375
05:06:05,200 --> 05:06:07,200
移动得非常非常快
7376
05:06:07,400 --> 05:06:09,700
所以这绝对是一个进步
7377
05:06:10,330 --> 05:06:13,230
尽管所有的颗粒仍然太大
7378
05:06:13,300 --> 05:06:14,800
对于规模上的
7379
05:06:14,800 --> 05:06:16,000
我希望有
7380
05:06:16,600 --> 05:06:22,970
最小刻度为 0.05,最大刻度为 0.1
7381
05:06:24,530 --> 05:06:26,130
如果我再运行一次
7382
05:06:30,500 --> 05:06:32,970
现在我们得到的粒子太小了
7383
05:06:32,970 --> 05:06:35,370
所以这些数字可能有点过于激进
7384
05:06:35,370 --> 05:06:38,200
假设 0.5 和 1
7385
05:06:42,430 --> 05:06:44,030
感觉好多了
7386
05:06:47,230 --> 05:06:51,430
我想 0.3 和 0.8 应该可以
7387
05:06:52,800 --> 05:06:54,530
这只是你必须要做的事情
7388
05:06:54,530 --> 05:06:55,970
一遍又一遍地练习
7389
05:06:56,170 --> 05:06:58,530
最终你会找到一些你喜欢的数字
7390
05:06:58,800 --> 05:06:59,430
不过接下来
7391
05:06:59,430 --> 05:07:01,630
更重要的是我想研究颜色
7392
05:07:01,630 --> 05:07:03,800
这是现在确实不起作用的部分
7393
05:07:04,630 --> 05:07:06,000
而不是白色
7394
05:07:06,100 --> 05:07:07,930
我想要一些光
7395
05:07:08,100 --> 05:07:10,930
蓝色,因为这也是激光的颜色
7396
05:07:11,600 --> 05:07:14,930
透明度也不应该完全
7397
05:07:14,930 --> 05:07:16,930
我想要一些公平的
7398
05:07:17,830 --> 05:07:19,230
看透某种颜色
7399
05:07:19,630 --> 05:07:21,170
所以如果你再次运行这个
7400
05:07:24,130 --> 05:07:28,200
它开始更好地结合在一起
7401
05:07:30,230 --> 05:07:32,300
我们也可以给它一个色带
7402
05:07:32,500 --> 05:07:34,130
这是一个渐变纹理
7403
05:07:34,800 --> 05:07:37,800
1d,对于这个我们可以设置一种颜色
7404
05:07:38,230 --> 05:07:40,200
起始颜色是我刚刚设置的颜色
7405
05:07:40,200 --> 05:07:42,300
然后我们有一个十进制颜色
7406
05:07:42,370 --> 05:07:44,030
我们可以简单地复制这个
7407
05:07:44,370 --> 05:07:47,570
使用 Ctrl 或 command s 然后将其粘贴到那里
7408
05:07:47,730 --> 05:07:49,100
现在我们得到这个起始颜色
7409
05:07:49,900 --> 05:07:51,130
和最终颜色
7410
05:07:51,800 --> 05:07:54,030
我想要同样的颜色
7411
05:07:54,400 --> 05:07:56,000
除了我想做这个
7412
05:07:56,200 --> 05:07:59,600
更白,更不透明
7413
05:08:00,430 --> 05:08:02,370
最后你应该有某种渐变
7414
05:08:02,370 --> 05:08:03,400
看起来像这样
7415
05:08:03,400 --> 05:08:04,700
我们从蓝色调开始
7416
05:08:04,700 --> 05:08:06,800
然后我们变得越来越透明
7417
05:08:07,370 --> 05:08:08,830
我再次运行那个
7418
05:08:10,770 --> 05:08:12,800
我们得到了一些几乎看不见的东西
7419
05:08:12,800 --> 05:08:14,730
所以我们希望这更多
7420
05:08:18,300 --> 05:08:19,600
我们想要增加
7421
05:08:20,030 --> 05:08:21,370
这些数字有点
7422
05:08:24,230 --> 05:08:25,000
再一次
7423
05:08:25,000 --> 05:08:26,900
这只是你必须玩弄的东西
7424
05:08:29,200 --> 05:08:31,930
我们得到了一些非常微弱的粒子效果
7425
05:08:33,300 --> 05:08:34,230
虽然我认为
7426
05:08:34,330 --> 05:08:36,930
初始速度甚至可能更高
7427
05:08:36,930 --> 05:08:40,830
让我们选择 1,200 到 1,500
7428
05:08:46,000 --> 05:08:50,130
肯定有一些有效的东西
7429
05:08:50,970 --> 05:08:53,500
我不想让你留在这里太久
7430
05:08:53,500 --> 05:08:57,200
你可以在很大程度上尝试所有这些
7431
05:08:57,300 --> 05:08:58,900
如果你想让你的游戏看起来不错
7432
05:08:58,900 --> 05:08:59,900
那么显然
7433
05:08:59,900 --> 05:09:02,100
你必须花很多时间来处理这一切
7434
05:09:02,900 --> 05:09:05,130
就我而言,虽然这是一个教程
7435
05:09:05,130 --> 05:09:08,430
所以我们可以说这部分已经基本完成了
7436
05:09:08,570 --> 05:09:10,500
我想要工作的下一个主要方面
7437
05:09:10,500 --> 05:09:12,030
灯亮了
7438
05:09:12,100 --> 05:09:14,770
这对于让游戏看起来很棒非常重要
7439
05:09:15,000 --> 05:09:17,900
而《戈多》并没有那么多
7440
05:09:17,900 --> 05:09:19,630
用光工作很容易
7441
05:09:20,200 --> 05:09:23,200
最终有两个节点可以使用
7442
05:09:24,300 --> 05:09:26,370
No.1叫做点光源
7443
05:09:26,370 --> 05:09:28,800
这是一个单点光
7444
05:09:28,800 --> 05:09:30,530
你在你的水平上有某个地方
7445
05:09:30,630 --> 05:09:33,830
所以想想手电筒或任何类型的灯
7446
05:09:34,430 --> 05:09:37,230
除此之外我们还有定向灯
7447
05:09:37,230 --> 05:09:38,700
这是一盏灯
7448
05:09:38,700 --> 05:09:41,530
从通常很远的方向
7449
05:09:41,830 --> 05:09:44,000
最好的例子就是太阳
7450
05:09:44,330 --> 05:09:45,770
虽然如果你想要一些
7451
05:09:45,770 --> 05:09:47,300
场景的一般照明
7452
05:09:47,300 --> 05:09:49,370
营造某种氛围
7453
05:09:49,400 --> 05:09:51,330
你也可以使用定向光
7454
05:09:51,830 --> 05:09:52,900
话虽这么说
7455
05:09:52,900 --> 05:09:53,800
大多数时候
7456
05:09:53,800 --> 05:09:54,930
你会结合一点
7457
05:09:54,930 --> 05:09:56,430
光和定向光
7458
05:09:56,430 --> 05:09:57,800
遍布你的场景
7459
05:09:58,130 --> 05:09:59,930
使用灯光是很常见的事情
7460
05:09:59,930 --> 05:10:01,930
你基本上到处都这样做
7461
05:10:02,600 --> 05:10:06,100
现在除了这两个节点之外我们还有一个概念
7462
05:10:06,100 --> 05:10:08,570
这就是所谓的遮光器
7463
05:10:08,800 --> 05:10:10,730
这基本上是一个光的形状
7464
05:10:10,730 --> 05:10:11,900
可以碰撞
7465
05:10:12,230 --> 05:10:13,400
到目前为止
7466
05:10:13,400 --> 05:10:16,130
我们使用了具有碰撞形状的碰撞体
7467
05:10:16,130 --> 05:10:18,570
遮光器也可以做同样的事情
7468
05:10:18,570 --> 05:10:19,530
只为光
7469
05:10:19,730 --> 05:10:21,970
这就是我们开始所需的一切
801042