Scratch编程 - 猫捉老鼠

Scratch编程 - 猫捉老鼠

一、学习目标

  1、复习坐标,方向等知识;

  2、学习与鼠标的侦测条件;

  3、学习如果那么否则的使用。

二、项目分析

添加角色与背景,游戏过程中伴随音乐,游戏结束音乐停止。

老鼠角色能够跟随鼠标指针移动,小猫追着老鼠移动,如果猫抓到老鼠程序结束;

三、项目实践

1、添加角色与背景

添加角色:Mouse1、Cat 2;背景:Bedroom 1,背景音乐:Dance Around

2、角色初始化

对角色进行初始化(大小,位置,方向,造型,背景,显示/隐藏);

这里的位置设置,我们可以让角色移动到舞台上的随机位置

背景音乐设置

注意这里要使用等待播完。

3、老鼠的移动

老鼠可以跟随鼠标移动,这里可以使用运动中的来实现,使用这个会发现老鼠紧紧跟随移动,并没有移动效果。

前面我们学过在移动有两种,一个是坐标移动,一个是移动10步,那这两个区别在于移动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、完成项目程序。

posted @ 2023-12-13 19:18  WangZhaowei  阅读(1067)  评论(0编辑  收藏  举报