< Return to Video

Function Parameters (Video Version)

  • 0:01 - 0:06
    我们又回到了“画温斯顿”这个程序了,
    但是我添加了一些文字。
  • 0:06 - 0:11
    看,我想做的是在把温斯顿放在这些标签下面,
  • 0:11 - 0:13
    显示他不同的人生阶段。
  • 0:13 - 0:15
    现在他在屏幕上到处乱窜。
  • 0:16 - 0:20
    这是因为在该函数里,
    我们把faceX和faceY 设置成了随机数。
  • 0:20 - 0:27
    但是,我们想做的事情是——
    嘿,我想你把温斯顿画到我指定的这个位置。
  • 0:27 - 0:30
    我希望每次调用函数的时候,
    我都能准确说明它的位置,
  • 0:30 - 0:33
    就像我们放置椭圆和矩形的时候一样。
  • 0:34 - 0:40
    我想要把温斯顿放在这里、这里,
    还有一个温斯顿在这里、一个温斯顿在这里。
  • 0:40 - 0:44
    我不希望我每次调用函数的时候,
    他满世界随机乱跑。
  • 0:45 - 0:49
    要做到这一点,我们要设置该函数里的参数,
  • 0:49 - 0:53
    既要在函数定义里设置参数——就是顶部这里,
  • 0:53 - 0:57
    也要是调用函数这里设置参数——
    就是下面这里我们实际调用参数的时候。
  • 0:57 - 1:02
    在画温斯顿的时候,
    我们传递的函数参数为faceX和faxeY,
  • 1:02 - 1:09
    我们要让该函数使用我们传递的值,
    而不是生成随机数。
  • 1:10 - 1:15
    我们先这样想,我们传递完值后,
    下面这些函数会如何调用它们呢。
  • 1:15 - 1:18
    我们想要把温斯顿放在每行标题文字下面,
  • 1:18 - 1:24
    这样每个温斯顿的X坐标跟Y坐标应该
    跟这些标题文字的坐标很接近。
  • 1:24 - 1:28
    可能温斯顿的Y坐标
    比标题文字的Y坐标低10个像素左右。
  • 1:28 - 1:41
    那第一个的X、Y坐标就应该是10、30,
    然后是200、230;10、 230; 200、 230。
  • 1:41 - 1:45
    这跟标题文字的坐标是一样的。
    只是每一个Y坐标我加了10,
  • 1:45 - 1:47
    因为我想把它放低一点点而已。
  • 1:50 - 1:51
    但是温斯顿没有动。
  • 1:52 - 1:59
    这是因为我们还没有告诉上面的函数我们要传递参数了,所以它还在用这些随机数值。
  • 1:59 - 2:04
    要告诉这些函数,“我们要给你这些信息啦”,
  • 2:04 - 2:08
    我们一定要在这些括号里面打入这些参数的名字。
  • 2:08 - 2:14
    我们将其命名为 faceX 和 face Y, 用逗号分隔开。
  • 2:15 - 2:21
    我们这样命名是因为在该函数里面
    我们已经用了这些名字,
  • 2:21 - 2:23
    这样我们就不用重写其他代码了。
  • 2:25 - 2:29
    但是,还是什么都没有发生。
    温斯顿还是在满世界乱跑。
  • 2:29 - 2:31
    如果你在看回来顶部的函数,
  • 2:31 - 2:35
    你会发现随机数值还是覆盖在faceX和faceY上。
  • 2:36 - 2:39
    所以我们要做的就是把这两行都删掉。
  • 2:39 - 2:46
    现在,faceX和faceY传递到函数里了,
  • 2:46 - 2:50
    而且它在使用我们在下面调用的值。
  • 2:50 - 2:54
    但是如你所见,温斯顿摆放的位置不是很正确,
  • 2:54 - 3:01
    因为我忘记了文字应该左对齐,脸则应该是居中。
  • 3:02 - 3:06
    所以我只需要修改一下我的数字是吧。
  • 3:06 - 3:13
    我要把 X 坐标右移很多, Y坐标下移一点。
    好了,孩童时期的温斯顿弄好了。
  • 3:13 - 3:14
    我们继续。
  • 3:15 - 3:23
    我们现在只要修改一下函数的参数值即可,完全不用重新定义函数。
  • 3:23 - 3:26
    它会使用我们传递的值,
  • 3:27 - 3:28
    就像制作椭圆和矩形的时候一样。
  • 3:28 - 3:33
    现在我已经差不多摆放好了,
    但是我又注意到温斯顿有点大。
  • 3:33 - 3:36
    几个温斯顿重叠在一起。
    他的大小不大对劲。
  • 3:36 - 3:39
    因为我是写了一个代码,
    用函数把温斯顿画出来的,
  • 3:39 - 3:42
    我也是一下子就可以改变全部的大小,
  • 3:42 - 3:45
    只要修改这一行画椭圆的代码即可。
  • 3:45 - 3:51
    我们看看改成190x190怎么样。
    耶,温斯顿减肥了。
  • 3:51 - 3:56
    现在他的大小合适了。
    然后,我还可以微调一下位置。
  • 3:56 - 4:02
    这样我就能把它放进去了是不是?
    好酷!
  • 4:04 - 4:09
    我们再来回顾一下这个函数的功能。
    它定义了一个叫做“画温斯顿”的函数,
  • 4:09 - 4:15
    它将采用两个值,
    这两个值的名字叫faceX和faceY。
  • 4:15 - 4:20
    实际上这两个值就是参数,
    我们可以在整个函数里使用它们,
  • 4:20 - 4:23
    就像我们以前使用在顶部声明的参数一样,
  • 4:23 - 4:29
    我们声明完函数之后就可以随时调用它们,
  • 4:29 - 4:34
    我们可以传递不同的值。
    它也会每次使用新输入的值。
  • 4:35 - 4:37
    你也见证了这些函数的神奇效应,
  • 4:38 - 4:41
    我们可以设计一些我们觉得可以重复使用的代码,
  • 4:41 - 4:46
    但是我们也可以用参数说,
    “嘿,你可以在这里修改一下这个代码。”
  • 4:46 - 4:49
    就像是一个菜谱,
    你写下总体指令,
  • 4:49 - 4:53
    然后你突然发现你要喂的
    不只是一个温斯顿,而是四个,
  • 4:53 - 4:55
    你不用一切重新开始,
  • 4:55 - 4:58
    你只需要调整一下原始指令,并把一切乘上4即可。
  • 4:58 - 5:02
    现在你可以开始想自己代码里的菜谱啦!
    哇!真好吃!
Title:
Function Parameters (Video Version)
Description:

more » « less
Video Language:
English
Duration:
05:05
  • Thanks by my heart to the maker because they finish my tension about the mahajong game http://fireboywatergirl.me and all things is so easy for us.

Chinese, Simplified subtitles

Revisions