####我们上节课制作了帮悟空找回金箍棒的项目,这个项目还有一个问题,我们使用键盘操作悟空移动的时候,如果不小心走出了栈道,游戏依然不受影响,这个就不科学了,我们怎么来解决这个问题呢?带着这个问题我们开始这节课的学习吧
####本节课知识点:使用碰到颜色代码块来操纵角色在舞台区 算法 指定区域移动
我们现在指定区域已经有了,就是舞台区的栈道,那剩下的 就是如何设计这个算法了,
在解决这个问题之前,我们还是要做一下分析,大家应该注意到了,我们遇到问题会习惯性的停下来分析,大家想一下这样做有什么好处呢?
我们无论在生活中还是学习中都会遇到一些问题,很多同学都是干了再想,遇到问题抄家伙就上,经常碰一鼻子灰,如果我们事先把问题梳理清楚,弄清楚问题的关键点在哪里,是不是更有利于问题的解决呢,我们把这个习惯应用到学习中,会使我们的学习更加高效
回到我们的问题上,这个指定的栈道有一个共同点 — 颜色相同,是不是?所以,我们可以使用角色碰到颜色的判断条件来实现这个效果
我们从控制模块组里拖动一个条件判断语句放到脚本区,从侦测模块组里拖动“碰到颜色”代码块放入到条件代码块的判断位置,点击一下“碰到颜色”代码块里的颜色,这里鼠标指针变为了小手造型,我们现在移动鼠标,现在“碰到颜色”代码块时的颜色跟随鼠标指针会发生变化,我们把鼠标指针移动到舞台区的栈道处,这时“碰到颜色”代码块里的颜色定格为了栈道的颜色,点击鼠标左键,这个栈道颜色就同步到"碰到颜色”代码块里了
这段条件代码的意思就是:“如果悟空碰到栈道的颜色就让他执行条件判断里的代码”,但是,我们要的条件是悟空没有碰到栈道上的颜色,也就是悟空走到了栈道外边,所以我们要把上面的条件做一个取反,所谓的取反是编程里的一个专业术语,意思是把刚刚的条件反过来,那如何进行取反操作呢?
我们要用到新的运算符的知识了。
从运算符代码块里拖动“某某不成立”代码块出来,将上面条件判断里的代码拖动到这个取反代码块中,然后再把这个整体代码块拖动到条件判断当中,现在这段判断算法的意思就是:“如果悟空没有碰到栈道上的颜色 也就是说悟空走到了栈道外面了 就让他执行条件判断里的代码”,
我们在判断结果里添加什么呢,第一步,从外观模块组里拖动“将角色造型切换为”代码块出来,将造型更改为死亡,并从控制模块组中拖动停止全部代码块出来,结束游戏的运行状态
好了,我们使用否定运算符和碰到颜色功能 组合了一套判断算法,来控制悟空不要走出栈道,完善了上节课的游戏项目,下面我们来看看碰到颜色代码块还能做哪些事情呢?一起来看下面这个迷宫,
![](https://ws1.sinaimg.cn/large/6bd2803cgy1fua6kknjtcj21h813qteq.jpg)
我们想让小松鼠走到终点吃到甜甜圈,是不是同样可以利用鼠标的上下左右键和碰到颜色代码块来实现呢?下面就让我们一起来完成它吧
点击绿旗后,我们同样可以写出下面这样的代码了吧
![](https://ws1.sinaimg.cn/large/6bd2803cgy1fua6jxs5npj20e20e0abu.jpg)
小松鼠在屏幕中 上下左右走的特效
但是,小松鼠仍然会走到迷宫通道的外面,对于这个问题,聪明的你是不是已经知道如何解决了呢?小朋友来说说看,下面四个答案哪个才是正确的呢?
选项A:
![](https://ws1.sinaimg.cn/large/6bd2803cgy1fua6iu87izj20ls0fk41n.jpg)
选项B:
![](https://ws1.sinaimg.cn/large/6bd2803cgy1fua6ifjmc3j20no0gugou.jpg)
我们来看一下这两段代码,选项A,在判断下移键是被按下之后才去判断,是否碰到角色,如果碰到对应的颜色就会让y坐标下移,这代码会造成不管我是否按下移键,小松鼠都会一直上移,所以,选项A肯定是不正确的,
再来看选项B,在判断下移键是被按下之的结果里同时判断是否碰到颜色,碰到颜色例Y坐标减1,而同时碰到颜色代码块使小松鼠的y坐标加1,一加一减相互抵销,所以,这段代码实现的效果就是,如果碰到通道以外的淡绿色,继续按下下移键,小松鼠就不会再移动了,显然,选项B是我们需要的效果,
OK,我们给每一个按键都添加一下碰到颜色的代码,代码实现如下,现在,我们就可以实现小松鼠走迷宫的效果啦,快来试试吧
![](https://ws1.sinaimg.cn/large/6bd2803cgy1fua6i5bsg7j20l411cgrc.jpg)
- scratch课标
- 第一课
- scratch编程环境
- scratch介绍
- scratch编程环境各区域详解
- 课堂实战
- 第二课
- 知识点:让角色动起来
- 课堂实战一:小松鼠跳过河-设置角色名称和大小
- 课堂实战二:小松鼠跳过河-模拟重力加速度效果
- 第三课
- 知识点:程序的入口和出口
- 知识点:程序的三种执行结构
- 课堂实战
- 第四课
- 知识点:角色造型概念
- 课堂实战:唐诗绘本
- 第五课
- 知识点:角色特效展示&随机数使用
- 课堂实战
- 第六课
- 知识点:键盘方向键使用
- 第七课
- 知识点:侦测模块之碰到颜色
- 课堂实战:迷宫
- 条八课
- 知识点:克隆实现
- 课堂实战:豌豆射手
- 第九课
- 知识点:变量应用
- 第十课
- 知识点:程序进阶之自定义模块
- 第十一课
- 知识点:精美的几何世界之画笔使用
- 课堂实战进阶:九九乘法表实现
- 第十二课
- 项目实战:寻找蛋糕(一)
- 课堂实战
- 咨讯
- 韩国将"编程"纳入小学必修课程
- 家长认知
- STEAM教育理念应用的钥匙-scratch少儿编程语言
- 习大大主持开幕的人工智能大会上讲了啥
- 9.19 习大大主持开幕的人工智能大会讲了啥