ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
####我们上节课制作了帮悟空找回金箍棒的项目,这个项目还有一个问题,我们使用键盘操作悟空移动的时候,如果不小心走出了栈道,游戏依然不受影响,这个就不科学了,我们怎么来解决这个问题呢?带着这个问题我们开始这节课的学习吧 ####本节课知识点:使用碰到颜色代码块来操纵角色在舞台区 算法 指定区域移动 我们现在指定区域已经有了,就是舞台区的栈道,那剩下的 就是如何设计这个算法了, 在解决这个问题之前,我们还是要做一下分析,大家应该注意到了,我们遇到问题会习惯性的停下来分析,大家想一下这样做有什么好处呢? 我们无论在生活中还是学习中都会遇到一些问题,很多同学都是干了再想,遇到问题抄家伙就上,经常碰一鼻子灰,如果我们事先把问题梳理清楚,弄清楚问题的关键点在哪里,是不是更有利于问题的解决呢,我们把这个习惯应用到学习中,会使我们的学习更加高效 回到我们的问题上,这个指定的栈道有一个共同点 — 颜色相同,是不是?所以,我们可以使用角色碰到颜色的判断条件来实现这个效果 我们从控制模块组里拖动一个条件判断语句放到脚本区,从侦测模块组里拖动“碰到颜色”代码块放入到条件代码块的判断位置,点击一下“碰到颜色”代码块里的颜色,这里鼠标指针变为了小手造型,我们现在移动鼠标,现在“碰到颜色”代码块时的颜色跟随鼠标指针会发生变化,我们把鼠标指针移动到舞台区的栈道处,这时“碰到颜色”代码块里的颜色定格为了栈道的颜色,点击鼠标左键,这个栈道颜色就同步到"碰到颜色”代码块里了 这段条件代码的意思就是:“如果悟空碰到栈道的颜色就让他执行条件判断里的代码”,但是,我们要的条件是悟空没有碰到栈道上的颜色,也就是悟空走到了栈道外边,所以我们要把上面的条件做一个取反,所谓的取反是编程里的一个专业术语,意思是把刚刚的条件反过来,那如何进行取反操作呢? 我们要用到新的运算符的知识了。 从运算符代码块里拖动“某某不成立”代码块出来,将上面条件判断里的代码拖动到这个取反代码块中,然后再把这个整体代码块拖动到条件判断当中,现在这段判断算法的意思就是:“如果悟空没有碰到栈道上的颜色 也就是说悟空走到了栈道外面了 就让他执行条件判断里的代码”, 我们在判断结果里添加什么呢,第一步,从外观模块组里拖动“将角色造型切换为”代码块出来,将造型更改为死亡,并从控制模块组中拖动停止全部代码块出来,结束游戏的运行状态 好了,我们使用否定运算符和碰到颜色功能 组合了一套判断算法,来控制悟空不要走出栈道,完善了上节课的游戏项目,下面我们来看看碰到颜色代码块还能做哪些事情呢?一起来看下面这个迷宫, ![](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)