## 复习上节课学习的内容
小朋友们好!我是阿达老师。我们上节课学习了使用自定义模块制作自已的算法小积木,用自已制作的小积木代码块实现了绘制迷宫围墙的效果,这节课我们继续完成《灵找蛋糕》游戏项目,
## 本节课知识点
使用循环算法结构和条件判断算法结构操作杰瑞的移动
## 实现分析
我们要实现通过键盘上的方向键控制它上下左右移动,并且不能穿过围墙(视频展示:杰瑞上下左右移动动画效果)*
## 视频实战
首先打开网易卡搭的编程环境,从事件模块组拖动`当绿旗被点击`代码块到脚本区,从控制模块组里拖动`如果...那么`代码块放到当绿旗被点击的下方
![](https://ws1.sinaimg.cn/large/6bd2803cgy1fuoowjknt9j209m04g0ss.jpg)
切换到侦测模块组,拖动“按键空格键是否被按下”到前面的条件判断语句当中,把“空格键”改成“右移键”,这时这段代码的意思就是“如果键盘上的右移键被按下,就执行这个判断条件里的代码”,
我们在条件结果当中拖入`面向90度方向`、`将x坐标增加5`两段代码
![](https://ws1.sinaimg.cn/large/6bd2803cgy1fuop0q3aazj20dy0720tp.jpg)
这时我们点击右移键,调试一下,看看杰现是不是能向右移动了,小朋友们,你们发现了什么?杰瑞没有动对不对?那是因为什么呢?
之前我们讲过电脑会按照我们写好的程序一步一步顺序的执行,在我们现在写好的代码中,当绿旗被点击时,它会顺序执行下面的代码,也就是它会判断右移键被按下了吗?当然我们在点击绿旗的一瞬间,右移键当然是没有被按下的,所以程序不会执行判断条件中的`将x坐标增加5`的代码块,那杰瑞自然也就不能移动了
![](https://ws1.sinaimg.cn/large/6bd2803cgy1fu6ubped1gj21em0vsaoa.jpg)
接下来程序继续执行,但是我们的程序下方已经没有任何代码了,所以,这个算法结构已经执行完毕,所以我们现在需要实现一段不停的判断的功能,我们知道无限循环可以实现这个功能的,我们从控制区拖动`重复执行`代码块到脚本区
![](https://ws1.sinaimg.cn/large/6bd2803cgy1fuop6lb2ktj20fa08yt9x.jpg)
现在让我们来看一下添加了无限循环后程序是如何运行的吧,当绿旗被点击时,程序就进入了无限循环中,首先它会判断一次键盘的右移键被按下了吗?由于这个时间向上键没有被按下,所以不会执行中间的`将x坐标增加5`语句,然后我们的程序会继续向下执行,当执行到程序末尾,由于添加了无限循环代码,程序会返回到刚刚开始的地方,也就是再次判断键盘右移键是否被按下,这个时候键盘的右移键还是没有被按下,程序执行完这次循环后,又会回来再次判断键盘上的右移键是不是被按下,这个时候如果我们按下了右移键,程序就会执行`将x坐标增加5`的代码了,当然无限循环中的判断会一直不停的进行,我们只要按下向右移键悟空就会一直向 右移动,如果这个时候我们松开了右移键,程序再执行右移键是否被按下的代码时,发现右移键没有被按下,那程序就不能执行`将x坐标增加5`的代码了
这下是不是清楚了,我们的算法脚本里缺少了一个循环判断的代码,把它加进来,现在程序就可以正常的运行了
同理,我们现在把向左移动、向上移动、向下移动的代码一起加进来,老师这里就不一一说明了,相信聪明的小朋友能够非常清晰的这三个方向的功能实现代码了,阿达老师把完整的代码直接帖过来,和老师一起对比一下,你写的代码是不是和阿达老师一样呢?
![](https://ws1.sinaimg.cn/large/6bd2803cgy1fuop90qvdnj20ek0j4n0n.jpg)
好了,现在我们就完成了杰瑞上下左右移动的功能,但是当我们使用上下左右键操作杰瑞移动时,杰瑞会跑到迷宫围墙的外面去,这是不符合我们的场景预设的,我们需要把这个问题解决掉,
在解决这个问题之前,我们还是要做一下分析,我们通过观察发现迷宫的围墙都有相同的颜色是不是?所以,我们可以使用***角色碰到颜色***的判断条件来实现这个效果
我们从控制模块组里拖动`如果...那么`代码块放到脚本区,从侦测模块组里拖动`碰到颜色`代码块放入到条件代码块的判断位置,点击一下`碰到颜色`代码块里的颜色,这里鼠标指针变为了小手造型,我们现在移动鼠标,现在`碰到颜色`代码块时的颜色跟随鼠标指针会发生变化,我们把鼠标指针移动到舞台区的栈道处,这时`碰到颜色`代码块里的颜色定格为了围墙的颜色,点击鼠标左键,这个围墙的颜色就同步到`碰到颜色`代码块里了,这段条件代码的意思就是:“如果杰瑞碰到围墙的颜色就让他执行条件判断里的代码”,
那么我们为了不让杰瑞横穿围墙,需要在判断结果里添加哪些算法呢?我们来理一下,在一段循环代码里,如果杰瑞现在执行的是`将x坐标增加5`,那么当他碰到围墙的时候我们让他执行`将x坐标增加-5`,那杰瑞+5的代码和-5的代码抵消了,杰瑞是不是就停下来了啊?所以,我们`将x坐标增加5`的代码块拖入刚刚颜色判断的代码段里,然后将增加5的数字改为增加-5,代码如下:
![](https://ws1.sinaimg.cn/large/6bd2803cgy1futd4r2wyvj20cm08e0tk.jpg)
我们再运行一下试试,
mp4
好了,杰瑞现在可以在围墙内移动了,一只萌萌哒小老鼠已经在开心的四处找食物了,我们今天的课程就到这儿吧,下节课我们完成甲虫代码的实现
## 小灶时间
- 简介
- 第二章-星星猎手
- 2.1 玩玩游戏吧
- 2.2 角色到位!
- 2.3 猫咪动起来
- 2.4 海马动起来
- 2.5 海马和猫咪碰上啦
- 2.6 抓海星啦!
- 2.7 抓了几个海星?
- 2.8 更多的海马过来啦
- 第三章 寻找蛋糕(迷宫类游戏)
- 第一课 使用画笔绘制迷宫围墙
- 第二课(1) 键盘操作杰瑞移动
- 第二课(2) 解决杰瑞横穿围墙问题
- 第三课 甲虫狂潮
- 第五课 幽灵出没
- 第六课 收获金币
- 第四章 黑洞大作战
- 4.1 玩玩游戏吧&分析制作思路
- 4.2 level1级别的物体行动
- 4.3 黑洞转起来
- 4.4 吞噬物体&记录分数
- 4.5 黑洞变大
- 4.6 leve2 级别的物体
- 4.7 level2吞噬、level3吞噬
- 4.8 游戏做好啦!
- 第五章 灵药战争
- 5.1群魔乱舞
- 5.2灵药惊现
- 5.3闪转腾挪
- 5.4大功告成
- 第六章 跳跃的猴子
- 6.1 part1