All language subtitles for Godot4的终极介绍.1243397733.zh-CN

af Afrikaans
ak Akan
sq Albanian
am Amharic
ar Arabic
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bem Bemba
bn Bengali
bh Bihari
bs Bosnian
br Breton
bg Bulgarian
km Cambodian
ca Catalan
ceb Cebuano
chr Cherokee
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English
eo Esperanto
et Estonian
ee Ewe
fo Faroese
tl Filipino
fi Finnish
fr French
fy Frisian
gaa Ga
gl Galician
ka Georgian
de German
el Greek
gn Guarani
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ia Interlingua
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
rw Kinyarwanda
rn Kirundi
kg Kongo
ko Korean
kri Krio (Sierra Leone)
ku Kurdish
ckb Kurdish (Soranî)
ky Kyrgyz
lo Laothian
la Latin
lv Latvian
ln Lingala
lt Lithuanian
loz Lozi
lg Luganda
ach Luo
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mfe Mauritian Creole
mo Moldavian
mn Mongolian
my Myanmar (Burmese)
sr-ME Montenegrin
ne Nepali
pcm Nigerian Pidgin
nso Northern Sotho
no Norwegian
nn Norwegian (Nynorsk)
oc Occitan
or Oriya
om Oromo
ps Pashto
fa Persian
pl Polish
pt-BR Portuguese (Brazil)
pt Portuguese (Portugal)
pa Punjabi
qu Quechua
ro Romanian
rm Romansh
nyn Runyakitara
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
sh Serbo-Croatian
st Sesotho
tn Setswana
crs Seychellois Creole
sn Shona
sd Sindhi
si Sinhalese
sk Slovak
sl Slovenian
so Somali
es Spanish
es-419 Spanish (Latin American)
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
tt Tatar
te Telugu
th Thai
ti Tigrinya
to Tonga
lua Tshiluba
tum Tumbuka
tr Turkish
tk Turkmen
tw Twi
ug Uighur
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
wo Wolof
xh Xhosa
yi Yiddish
yo Yoruba
zu 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

Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.