[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.88,0:00:06.00,Default,,0000,0000,0000,,我们又回到了“画温斯顿”这个程序了,\N但是我添加了一些文字。 Dialogue: 0,0:00:06.00,0:00:11.07,Default,,0000,0000,0000,,看,我想做的是在把温斯顿放在这些标签下面, Dialogue: 0,0:00:11.07,0:00:13.21,Default,,0000,0000,0000,,显示他不同的人生阶段。 Dialogue: 0,0:00:13.43,0:00:14.90,Default,,0000,0000,0000,,现在他在屏幕上到处乱窜。 Dialogue: 0,0:00:15.56,0:00:19.68,Default,,0000,0000,0000,,这是因为在该函数里,\N我们把faceX和faceY 设置成了随机数。 Dialogue: 0,0:00:20.46,0:00:26.71,Default,,0000,0000,0000,,但是,我们想做的事情是——\N嘿,我想你把温斯顿画到我指定的这个位置。 Dialogue: 0,0:00:26.71,0:00:30.32,Default,,0000,0000,0000,,我希望每次调用函数的时候,\N我都能准确说明它的位置, Dialogue: 0,0:00:30.32,0:00:32.65,Default,,0000,0000,0000,,就像我们放置椭圆和矩形的时候一样。 Dialogue: 0,0:00:34.05,0:00:40.46,Default,,0000,0000,0000,,我想要把温斯顿放在这里、这里,\N还有一个温斯顿在这里、一个温斯顿在这里。 Dialogue: 0,0:00:40.46,0:00:43.62,Default,,0000,0000,0000,,我不希望我每次调用函数的时候,\N他满世界随机乱跑。 Dialogue: 0,0:00:44.76,0:00:48.88,Default,,0000,0000,0000,,要做到这一点,我们要设置该函数里的参数, Dialogue: 0,0:00:48.88,0:00:52.50,Default,,0000,0000,0000,,既要在函数定义里设置参数——就是顶部这里, Dialogue: 0,0:00:52.81,0:00:57.30,Default,,0000,0000,0000,,也要是调用函数这里设置参数——\N就是下面这里我们实际调用参数的时候。 Dialogue: 0,0:00:57.30,0:01:02.21,Default,,0000,0000,0000,,在画温斯顿的时候,\N我们传递的函数参数为faceX和faxeY, Dialogue: 0,0:01:02.21,0:01:09.06,Default,,0000,0000,0000,,我们要让该函数使用我们传递的值,\N而不是生成随机数。 Dialogue: 0,0:01:10.43,0:01:14.66,Default,,0000,0000,0000,,我们先这样想,我们传递完值后,\N下面这些函数会如何调用它们呢。 Dialogue: 0,0:01:14.66,0:01:17.54,Default,,0000,0000,0000,,我们想要把温斯顿放在每行标题文字下面, Dialogue: 0,0:01:17.62,0:01:24.49,Default,,0000,0000,0000,,这样每个温斯顿的X坐标跟Y坐标应该\N跟这些标题文字的坐标很接近。 Dialogue: 0,0:01:24.49,0:01:28.24,Default,,0000,0000,0000,,可能温斯顿的Y坐标\N比标题文字的Y坐标低10个像素左右。 Dialogue: 0,0:01:28.48,0:01:40.89,Default,,0000,0000,0000,,那第一个的X、Y坐标就应该是10、30,\N然后是200、230;10、 230; 200、 230。 Dialogue: 0,0:01:40.89,0:01:44.86,Default,,0000,0000,0000,,这跟标题文字的坐标是一样的。\N只是每一个Y坐标我加了10, Dialogue: 0,0:01:44.86,0:01:47.40,Default,,0000,0000,0000,,因为我想把它放低一点点而已。 Dialogue: 0,0:01:49.98,0:01:51.41,Default,,0000,0000,0000,,但是温斯顿没有动。 Dialogue: 0,0:01:51.59,0:01:59.18,Default,,0000,0000,0000,,这是因为我们还没有告诉上面的函数我们要传递参数了,所以它还在用这些随机数值。 Dialogue: 0,0:01:59.18,0:02:03.60,Default,,0000,0000,0000,,要告诉这些函数,“我们要给你这些信息啦”, Dialogue: 0,0:02:03.60,0:02:08.40,Default,,0000,0000,0000,,我们一定要在这些括号里面打入这些参数的名字。 Dialogue: 0,0:02:08.40,0:02:14.11,Default,,0000,0000,0000,,我们将其命名为 faceX 和 face Y, 用逗号分隔开。 Dialogue: 0,0:02:15.27,0:02:20.70,Default,,0000,0000,0000,,我们这样命名是因为在该函数里面\N我们已经用了这些名字, Dialogue: 0,0:02:20.70,0:02:23.47,Default,,0000,0000,0000,,这样我们就不用重写其他代码了。 Dialogue: 0,0:02:25.11,0:02:28.81,Default,,0000,0000,0000,,但是,还是什么都没有发生。\N温斯顿还是在满世界乱跑。 Dialogue: 0,0:02:28.81,0:02:31.35,Default,,0000,0000,0000,,如果你在看回来顶部的函数, Dialogue: 0,0:02:31.35,0:02:35.26,Default,,0000,0000,0000,,你会发现随机数值还是覆盖在faceX和faceY上。 Dialogue: 0,0:02:36.10,0:02:38.79,Default,,0000,0000,0000,,所以我们要做的就是把这两行都删掉。 Dialogue: 0,0:02:38.79,0:02:46.24,Default,,0000,0000,0000,,现在,faceX和faceY传递到函数里了, Dialogue: 0,0:02:46.24,0:02:49.58,Default,,0000,0000,0000,,而且它在使用我们在下面调用的值。 Dialogue: 0,0:02:49.58,0:02:53.91,Default,,0000,0000,0000,,但是如你所见,温斯顿摆放的位置不是很正确, Dialogue: 0,0:02:53.91,0:03:01.15,Default,,0000,0000,0000,,因为我忘记了文字应该左对齐,脸则应该是居中。 Dialogue: 0,0:03:02.07,0:03:06.38,Default,,0000,0000,0000,,所以我只需要修改一下我的数字是吧。 Dialogue: 0,0:03:06.38,0:03:12.61,Default,,0000,0000,0000,,我要把 X 坐标右移很多, Y坐标下移一点。\N好了,孩童时期的温斯顿弄好了。 Dialogue: 0,0:03:12.61,0:03:14.27,Default,,0000,0000,0000,,我们继续。 Dialogue: 0,0:03:14.71,0:03:22.52,Default,,0000,0000,0000,,我们现在只要修改一下函数的参数值即可,完全不用重新定义函数。 Dialogue: 0,0:03:22.52,0:03:25.76,Default,,0000,0000,0000,,它会使用我们传递的值, Dialogue: 0,0:03:26.72,0:03:28.39,Default,,0000,0000,0000,,就像制作椭圆和矩形的时候一样。 Dialogue: 0,0:03:28.39,0:03:33.35,Default,,0000,0000,0000,,现在我已经差不多摆放好了,\N但是我又注意到温斯顿有点大。 Dialogue: 0,0:03:33.35,0:03:35.76,Default,,0000,0000,0000,,几个温斯顿重叠在一起。\N他的大小不大对劲。 Dialogue: 0,0:03:35.76,0:03:39.02,Default,,0000,0000,0000,,因为我是写了一个代码,\N用函数把温斯顿画出来的, Dialogue: 0,0:03:39.02,0:03:42.37,Default,,0000,0000,0000,,我也是一下子就可以改变全部的大小, Dialogue: 0,0:03:42.37,0:03:45.44,Default,,0000,0000,0000,,只要修改这一行画椭圆的代码即可。 Dialogue: 0,0:03:45.44,0:03:50.63,Default,,0000,0000,0000,,我们看看改成190x190怎么样。\N耶,温斯顿减肥了。 Dialogue: 0,0:03:50.63,0:03:55.96,Default,,0000,0000,0000,,现在他的大小合适了。\N然后,我还可以微调一下位置。 Dialogue: 0,0:03:55.96,0:04:01.90,Default,,0000,0000,0000,,这样我就能把它放进去了是不是?\N好酷! Dialogue: 0,0:04:03.54,0:04:08.53,Default,,0000,0000,0000,,我们再来回顾一下这个函数的功能。\N它定义了一个叫做“画温斯顿”的函数, Dialogue: 0,0:04:08.53,0:04:14.67,Default,,0000,0000,0000,,它将采用两个值,\N这两个值的名字叫faceX和faceY。 Dialogue: 0,0:04:14.67,0:04:19.95,Default,,0000,0000,0000,,实际上这两个值就是参数,\N我们可以在整个函数里使用它们, Dialogue: 0,0:04:19.95,0:04:23.06,Default,,0000,0000,0000,,就像我们以前使用在顶部声明的参数一样, Dialogue: 0,0:04:23.06,0:04:29.11,Default,,0000,0000,0000,,我们声明完函数之后就可以随时调用它们, Dialogue: 0,0:04:29.11,0:04:33.71,Default,,0000,0000,0000,,我们可以传递不同的值。\N它也会每次使用新输入的值。 Dialogue: 0,0:04:34.98,0:04:37.18,Default,,0000,0000,0000,,你也见证了这些函数的神奇效应, Dialogue: 0,0:04:37.59,0:04:41.09,Default,,0000,0000,0000,,我们可以设计一些我们觉得可以重复使用的代码, Dialogue: 0,0:04:41.44,0:04:46.46,Default,,0000,0000,0000,,但是我们也可以用参数说,\N“嘿,你可以在这里修改一下这个代码。” Dialogue: 0,0:04:46.46,0:04:49.40,Default,,0000,0000,0000,,就像是一个菜谱,\N你写下总体指令, Dialogue: 0,0:04:49.40,0:04:52.81,Default,,0000,0000,0000,,然后你突然发现你要喂的\N不只是一个温斯顿,而是四个, Dialogue: 0,0:04:53.08,0:04:54.75,Default,,0000,0000,0000,,你不用一切重新开始, Dialogue: 0,0:04:54.80,0:04:57.63,Default,,0000,0000,0000,,你只需要调整一下原始指令,并把一切乘上4即可。 Dialogue: 0,0:04:58.00,0:05:02.20,Default,,0000,0000,0000,,现在你可以开始想自己代码里的菜谱啦!\N哇!真好吃!