CODEMONKEY 180-185逻辑与事件- 谁动了我的鼠标
在这节课中,我们将认识一个新的角色蝙蝠并能够用鼠标移动小猴和蝙蝠。
学习目标:
1、学习了解“mouse-move”事件
2、学习如何利用“mouse-move”事件来移动角色
知识点:
1、今天我们将介绍一个新的事件:“mouse-move”事件,每次用户移动鼠标,它便会触发一个动作。
在CodeMonkey我们需要用鼠标移动来控制某些操作,需要用到函数“onMouseMove”。每次鼠标移动都会调用这个函数,这个函数会携带一个存储有鼠标位置的参数。
进入到180关,我们会看到下面的代码:
onMouseMove = (pos) ->
pos是这个函数的参数,它就是鼠标光标的位置。如果我们想将角色移动到鼠标光标所在的位置,我们首先可以用这个变量让角色面向这个位置,然后可以通过键盘事件控制角色向前移动。
2、 setX 与 setY
如上图所示,要把黄色的圆点移动到蓝色圆点处,那么我们需要设置黄色圆点的坐标为(4,1)
yellowDot.setX 4
yellowDot.setY 1
通过setX 与 setY函数来改变角色x,y坐标,从而可以控制角色在屏幕上移动,这个函数的参数就是新的位置坐标。
例如:setX 4 这个例子中setX的参数值为4,我们也可以使用变量作为此函数的参数。例如:SETX pos.x 这样就通过变量pos.x的值改变了x坐标的位置。
实战闯关:
第180关: 使用onMouseMove函数, 根据本关提示,右侧前面这段代码会使小猴转向鼠标移动的方向。我们现在需要完善onKey函数,你也会发现,当你点击其它地方的时候是不允许修改的。
我们可以先运行一下程序,发现移动鼠标,小猴就会面向它,很显然我们可以通过鼠标控制小猴移动的方向,那么我们按下键盘希望小猴能够前进(需要我们完善),这样,利用鼠标跟键盘的配合就能让小猴拿到香蕉了。
第181关,让鳄鱼动起来,通过键盘控制小猴前进,使用鼠标控制鳄鱼的方向,这样就能顺利过关了。
第182关:使用代码bat.setX,它可以让蝙蝠立即移动!这一关我们会遇到一个新的朋友蝙蝠,没有了乌龟的帮忙,小猴要取到香蕉就只能靠蝙蝠了,让蝙蝠飞到香蕉的位置,然后通过grab()函数拾取香蕉,接下来我们通过鼠标移动,设置蝙蝠的x坐标为鼠标的x坐标,使蝙蝠在水平位置上移动,这样只要把鼠标移动到小猴这里,蝙蝠就会飞过来了。次关卡无需添加代码,需要我们去体会理解setX方法的使用。
第183关:根据提示使用j键盘来控制蝙蝠捡起 grab()香蕉,然后我们只需要移动鼠标,让蝙蝠在垂直位置上来回移动,进行香蕉的拾取和运送就好了。
回顾如何判断键盘按下的按键是“j”
第184关:本关香蕉跟蝙蝠既不在同一水平线又不在同一垂直线上,为了能够让蝙蝠快速的取到香蕉,我们就需要让蝙蝠能够快速的移动到鼠标所在位置(设置蝙蝠的坐标为鼠标的位置),结合前两关跟我们本节的知识讲解,来完成吧。
第185关:这一关与上一关完全一样,需要我们能够自己独立写出完整的代码。用鼠标控制蝙蝠移动,设置一个按键来拾取香蕉,本关就算完成了。
思考与练习
1、在这一课中,我们学习了鼠标移动事件。我们现在知道如何使用键盘和鼠标来控制角色,这意味着我们离创造自己的游戏更近了一步!
打开挑战176,尝试使用鼠标移动事件来完成挑战。
解决这个问题的方法之一是:
onMouseMove = (pos) ->
goto pos
通过键盘和鼠标移动小猴去取到香蕉,别忘了去拿药水!
与鼠标移动事件相比,解决这个挑战有什么不同?
●它更快
●我们不需要移动的乌龟
2、练一练,完成本节对应的特技关卡
答案
本站内容未经许可,禁止任何网站及个人进行转载。