Scratch编程 - 猫捉老鼠
Scratch编程 - 猫捉老鼠
一、学习目标
1、复习坐标,方向等知识;
2、学习与鼠标的侦测条件;
3、学习如果那么否则的使用。
二、项目分析
添加角色与背景,游戏过程中伴随音乐,游戏结束音乐停止。
老鼠角色能够跟随鼠标指针移动,小猫追着老鼠移动,如果猫抓到老鼠程序结束;
三、项目实践
1、添加角色与背景
添加角色:Mouse1、Cat 2;背景:Bedroom 1,背景音乐:Dance Around
2、角色初始化
对角色进行初始化(大小,位置,方向,造型,背景,显示/隐藏);
这里的位置设置,我们可以让角色移动到舞台上的随机位置
背景音乐设置
注意这里要使用等待播完。
3、老鼠的移动
老鼠可以跟随鼠标移动,这里可以使用运动中的来实现,使用这个会发现老鼠紧紧跟随移动,并没有移动效果。
前面我们学过在移动有两种,一个是坐标移动,一个是移动10步,那这两个区别在于移动10步是有方向的,那在这里我们能不能让老鼠跟随鼠标的方向移动。
在运动中有模块可以使角色面向鼠标指针方向。
再配合着移动与循环
这个时候就会跟随我们鼠标方向来移动了。
同时为了移动的效果老鼠是有移动的造型的,我们配合着造型的切换。
注意:在这里因为造型切换有等待的事件,为了不影响角色的移动,把造型的切换与移动分开两段程序。
但是在这里会发现,老鼠移到位置后会来回移动,为什么呢?因为我们的方向是有一个界限的,如果这个方向就在角色的中间,那角色是分辨不出来是在哪边的,随意老鼠就会在原地一直摇晃看看到底是那边。
那如何解决这个问题。
这里是因为方向的问题,刚才我们使用便没有产生在这样的问题;
那能不能让老鼠距离比较远的时候去使用方向跟随,近的时候就直接移动到位置上。
这里我们可以使用控制中的分支模块,这里面是满足条件就进入到那么里面,不满足条件就进入到否则里面。
4、猫的行为
小猫需要跟随老鼠的方向去移动,那这里也就简单了。
这时会发现老鼠跟小猫会同时运动,这时为什么?
这里我们老鼠的步数是移动10步,小猫的步数也是移动10步,这样如果相遇之后,两个角色就会同步走动了;
那这里为了不同步可以让猫走慢一点。
5、行为触发
以上做好了后会发现,小猫出现了与老鼠一样的问题,会晃动,同样我们也可以像小猫那样设置;
但是,想一想如果猫碰到老鼠是不是就游戏结束了,老鼠要消失了。
所以我们就不用设置老鼠的移动,做一个碰触条件就可以了,那这里我们要写在哪个角色下。
要想一下谁的动作多一点,两个角色触碰,应该是老鼠消失,小猫不动停止。所以我们应该在老鼠上写。
那碰到的反应是什么呢?
首先是老鼠发出一个声音后消失,然后就结束所有程序。
但是在这里没有让猫,音乐停止移动,这里是因为停止是在播放音乐之后的,要等音乐播完,那这样的话这一段时间小猫与背景的程序是没有停止的。
这里我们可以通过广播一个消息,让角色与背景接收停止。注意这里不能停止全部脚本,因为音乐还没有播完就停止了。
所以在这里需要使用停止中的其他脚本(因为使用的是广播,广播目的就是停止主程序,主程序就是广播的其他程序)。
那为什么老鼠中没写呢?
在老鼠中其实是可以写的,如果写了之后就要改变一下布局,要把播放等程序放在广播程序之后。
但是在这里碰触到小猫之后便隐藏了,播放前停止播放后停止便看不出来效果了,所以我们还是使用原来方案,这样程序也少了三个。
四、项目完整程序
五、作业与实践
1、完成下列选择题
①执行哪一段程序后,小猫可以从舞台的A位置,沿着B、C点到达D位置?
A、 | B、 | ||
C、 | D、 |
②将项目的背景音乐设置为声音库里的“Birthday”并重复播放,为了避免运行时产生噪音,应该使用( )。
A、 | B、 | ||
C、 | 或 | D、 | 和 |
点击查看答案
1 | D |
2 | B |
2、完成项目程序。