这期攻略,咱来到“点击我吧”模块。
看到这个模块的题目,我不得不想起郭德纲和于谦老师在相声《美丽人生》中的一段台词:
郭:于老师这个人人特别好,和我关系也特别好,三天两头看不见我就想他,闲来无事在网吧上网,搜搜于谦的消息吧
于:网上有我不少消息
郭:尤其是于老师的照片,在网上很火,公安局网监大队明令禁止
于:那是我照片吗
郭:你们起什么哄?我没看够200张,所以今天和于冠希老师站在一起…
于:你怎么把我姓都给改了
郭:我还上过你的那个…嫖客
于:您还上过我的嫖客??那咱俩得认干姐妹了…
郭:什么话呀!!你很三俗
于:你不说我想的起来吗
郭:那是什么
于:博客
郭:我在那博客上一看,诶哟,那么多人点你呀
于:那么多人点我,像话吗
郭:(用手指点)这不是点你吗
于:嗨,您说错了,点击
郭:点你就是点鸡??
于:越说越不像话了,点击率
郭:怎么还绿呀
于:说不清楚了跟你
哈哈。
咱正式进入正文。
鼠标是我们常用的工具,在编程中,我们也可以用鼠标来指导物体的移动。
在上一次教程里,我们学会了如何用鼠标控制物体运动的方向以及控制让物体的位置。
在接下来的教程里,我们将学会用鼠标点击一个位置,让小猴子自动地运动到那里,同时不妨碍鼠标的其他操作。
第186关
这一关的终点就在于,我们用onClick函数来判断我们是否用鼠标点击了onClick前面的对象, 这里就是monkey我们可爱的小猴子了。monkey.onClick这个函数是带有对象的判断语句。
如果我们用鼠标点击小猴子,monkey.onClick返回的是yes,那么小猴子就需要执行函数里面的指令,也就是monkey.step 5,向前走5步。
如果我们没有用鼠标点击小猴子,monkey.onClick返回的是no,小猴子就原地不动,怪怪地等待被点击吧。
系统给出的代码也非常简单,如下:
点击运行,然后用鼠标点击小猴子吧!
第187关
这一关不仅有小猴子,还有我们可爱的小乌龟。
小乌龟是过来渡小猴子的,也就是帮助小猴子过河的。
那么我们用onClick函数不仅可以判断小猴子是否被鼠标点击,还可以判断小乌龟是否被点击。
从而,我们不仅可以控制小猴子向前走,也可以控制小乌龟向前走。
这样就可以让小乌龟来到小猴子和香蕉之间,从而节约小猴子行走的时间了。
当然,我们也可以让小乌龟不懂,让小猴子绕道小乌龟那里过河。这样做有两个弊端,一是代码更加复杂了, 二是小猴子行走的时间也会变长。
系统给出的代码如下:
我们只需要仿照用来控制小猴子的代码,写出两行控制小乌龟的代码就可以了。
点击运行,用鼠标控制小猴子和小乌龟吧!
第188关
我们还可以点击香蕉,让小猴子走到香蕉那里去。
在上图右侧的代码框里,如下,
我们发现系统默认使用了goto函数,这个函数大家应该比较熟悉,因为之前的很多关卡都用到了这个函数。这个函数主要包括两个步骤:一是turnTo,也就是面向goto 后面的物体(如goto banana中的banana);二是step,也就是走向goto后面的物体(banana)。
但是在上面的代码里,我们希望小猴子吃到香蕉,那么在我们点击香蕉之后,当然是希望小猴子走向香蕉啦。
所以代码修改如下:
点击运行!小猴子不知道香蕉在哪里,快点击香蕉让小猴子跟随鼠标的步伐吧!
第189关
在上一关里,我们学会了用鼠标点击香蕉,从而让小猴子走向那个香蕉。
这一关其实就是比上一关多了几个香蕉而已。
所以我们需要多点击几次啦!
那么我们就可以用for循环,这也是我们在之前的很多关卡里用到的技巧。
系统给出的代码如下:
我们需要给出点击香蕉之后的代码,也就是让小猴子走向香蕉b。
代码如下:
点击运行!让小猴子跟着鼠标的点击去吃香蕉吧!
第190关
在之前的关卡里,我们可以做到两件事:
一,点击小猴子,让小猴子向前走;
二, 点击香蕉,让小猴子走到香蕉。
但是在海上的时候,我们有时不能直接做这两件事情。
比如上图中的情形,我们的小猴子和香蕉之前搁着一段距离的海水,而这段距离恰好等于一条鳄鱼的长度。
如果我们可以让鳄鱼转变方向,做小猴子和香蕉之间的桥梁就好了。
事实上,我们还可以用鼠标点击做另外一件事情,那就是让小鳄鱼转变方向。需要用到turn left或者turn right这样的指令。
上图右侧,系统给出的代码如下:
我们只需要在第5行写上“crocodile.turn left”或者“crocodile.turn right”就可以。这两各指令在这里都是可以的,因为他们本来就是对称的动作。
代码如下:
点击运行!用鼠标点击鳄鱼和香蕉,用你的聪明才智让小猴子吃到香蕉吧!
第191关
这一关和上一关类似,但是稍微有点复杂。
一看到上图,大家千万不要想着让小猴子先吃最近的香蕉(也就是小猴子右上方的香蕉),因为小猴子在最开始的时候和右上方的那个香蕉之间是没有鳄鱼的。
更好的选择是,让小猴子先沿着鳄鱼往上走,再沿着石墩往左走,再往下,最后再沿着鳄鱼往右走。
系统给出的提示如下:
我给出的代码如下:
点击运行!用我刚才给出的一个方案指挥小猴子吧!
第192关
这一关的终点在于我们可以用mover代替onClick之前的任意物体。
比如,我们定义“mover=monkey”,那么我们就可以用mover.onClick来代替monkey.onClick。
这样做的好处是,如果代码很复杂,我们只需要修改mover的值,而不需要跑到onClick函数里面修改对象的值。
这样我们就可以在不同的场景下使用onClick函数,增加了onClick函数的灵活性。
在方框里写上step 3就可以啦!
点击运行,然后我们只需要点击灌木,就是左侧绿绿的植物,就可以让小猴子往前走了!
总结
我们在这7关里学到了两点:
一,我们可以用鼠标点击控制物体(比如小猴子),包括点击小猴子让小猴子往前走,点击香蕉让小猴子直接走向香蕉,点击小猴子让小猴子转向等等。
二,我们可以用mover代替具体的物体,增加了onClick函数的灵活性。
下一次,我会介绍第193-199关。
最后一次,我会介绍第200关,也就是打终极大boss,大猩猩。