经过前面十节课基础知识的学习,相信小朋友们已经掌握了一些基本的scratch编程技巧了,后面的课程我们将通过项目实战的方式来系统的运用之前学习过的基础功能模块进行编码,话不多说,我们来看一下今天要做的项目吧。
项目名称:寻找蛋糕
小朋友们看我们界面效果,应该可以猜到这是一个迷宫项目,迷宫游戏是世界上最早出现,也是最流行的游戏之一。在迷宫里需要快速思考,来判断最优化路径,并且能够熟练快速操作角色,通过发现的最优化路径,其间还需要躲避怪兽,收集宝物,以上这些元素我们今天这个游戏里统统都有,我们开始吧
小老鼠杰瑞很饿,它被困在的迷宫里,同时,它也迷到了蛋糕的幽香。我们通过上帝视角可以看到蛋糕被放在一个精美的蛋糕盒里,我们现在要帮助它找到蛋糕,同时还需要注意躲避邪恶的甲虫,并且还要小心幽灵,碰到幽灵和甲虫中的任何一个游戏就会结束
我们分别要对 杰瑞、甲虫、幽灵 三个角色进行编码,
杰瑞:
我们要实现通过键盘上的方向键控制它上下左右移动,这部分我们在《基础知识的第六课--键盘方向键的使用》当中已经学习过了,这里老师直接把代码贴出来,大家复习一下吧
甲虫:
甲虫沿着墙壁快速爬行,当碰到墙壁的时候,它会随机调转方向,当杰瑞磁到甲虫的时候游戏就结束
幽灵:
幽灵可以从墙的上方飘过,它们会出其不意的出现在舞台区的任何位置,然后又消失,当杰瑞磁到幽灵的时候游戏同样结束
这个游戏可以设计出无数个版本,你可以通过调整甲虫和幽灵的移动速度来增加难度,也可以通过改变迷宫的形状来创造属于自已的版本,赶快试一试吧。
《寻找蛋糕》这个项目需要用三到四节课的时间来完成,我们这节课先来实现通过键盘控制杰瑞移动的代码吧,
首先,我们先要设置舞台的背景区,也就是要设置迷宫的道路区域,这部分我们可以自由发挥,我们可以在白纸上画一个迷宫的形状,然后用手机把我们设计的迷宫道路拍下来,上传到电脑,再导入成为我们的背景,
也可以直接设置一个蓝色背景,然后自已画迷宫道路,在这里阿达老师使用的是第二种方式,用画笔模块组里的代码块画了一个迷宫道路,画笔的使用技巧我们在自定义模块的课程中已经学习过了,阿达老师把实现代码公布一下,有兴趣的同学可以学习一下,
其次,我们要设置角色区,杰瑞小老鼠、幽灵、小甲虫都是scratch自带的角色,我们直接导入就可以了,
接下来,我们来实现一下按下键盘上的左移键,让杰瑞向左移动的代码,先从事件模块组里拖动“当绿旗被点击”代码块到脚本区, 再从控制模块组里拖动“如果...那么...”放到绿旗被点击的下方,
切换到侦测模块组,拖动“按键空格键是否被按下”到前面的条件判断语句当中,把“空格键”改成“右移键”,这时这段代码的意思就是“如果键盘上的右移键被按下,就执行这个判断条件里的代码”,
我们在条件结果当中拖入“面向90度方向”、“将x坐标增加5”两段代码
这时我们点击右移键,调试一下,看看杰现是不是能向右移动了,小朋友们,你们发现了什么?杰瑞没有动对不对?
我们来看一下之前我们在悟空找回金箍棒的项目中遇到同样的问题是如何解决的吧:
在我们现在写好的代码中,当绿旗被点击时,它会顺序执行下面的代码,也就是它会判断右移键被按下了吗?当然我们在点击绿旗的一瞬间,右移键当然是没有被按下的,所以程序不会执行判断中的移10步的代码,
接下来程序继续执行,但是我们的程序下方已经没有任何代码了,所以,这个算法结构已经执行完毕,所以我们现在需要实现一段不停的 判断的功能,我们知道无限循环可以实现这个功能的,我们从控制区拖动无限循环代码出来,
现在让我们来看一下添加了无限循环后程序是如何运行的吧,当绿旗被点击时,程序就进入了无限循环中,首先它会判断一次键盘的上键被按下了吗?由于这个时间向上键没有被按下,所以不会执行中间的移动10步语句,这个时间呢我们的程序会继续向下执行,当执行到程序末尾,由于添加了无限循环代码,程序会返回到刚刚开始的地方,也就是再次判断键盘向上键是否被按下,这个时候键盘的上键还是没有被按下,程序执行完这次循环后,又会回来再次判断键盘上的上键是不是被按下,这个时候如果我们按下了向上键,程序就会执行移动10步的代码了,当然无限循环中的判断会一直不停的进行,我们只要按下向上键悟空就会一直向前移动,如果这个时候我们松开了向上键,程序再执行向上键是否被按下的代码时,发现向上键没有被按下,那程序就不能执行移动10步的代码了,
这下是不是清楚了,我们缺少了一个循环判断的代码,加进来试一下吧
OK,现在可以正常的向右移动了
同理,我们现在把向左移动、向上移动、向下移动的代码一起加进来,
好了,现在我们就完成了杰瑞上下左右移动的功能,但是杰现现在会跑到迷宫的外面去,
这个问题我们鶹到下节课继续讲解,今天就到这里吧,明天见