最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

慢教育Scratch教案分享 / 大鱼吃小鱼

Scratch 少儿编程 2878浏览 0评论

友情提示:380元/半年,儿童学编程,就上码丁实验室

这个暑假,慢教育召集喜爱Scratch编程的孩子一起自学Scratch编程,我们组了一个群,让一群素不相识的孩子,可以围绕一个任务,切磋代码;可以交流遇到的难题,在讨论中获得主动学习的快乐;可以分享成果,交流用代码表达思维的乐趣。慢教育公众号会每周发布一次编程任务。也会不定期推送孩子们的编程作品。

上周任务

1、设计一条可以用键盘控制移动的小鱼

2、当小鱼吃到比它大的鱼,游戏结束

3、当小鱼吃到比它小的鱼,体型变大

4、当小鱼吃到章鱼,体型变小

教案如下

慢教育Scratch教案分享 / 大鱼吃小鱼

设置游戏背景,

可在scratch背景库中选择一个图片背景。

 

然后定义角色

 

慢教育Scratch教案分享 / 大鱼吃小鱼

我们采用“在角色库中选取角色”,

在角色库中水下主题里面选取鲨鱼作为游戏主角色。

当然,你也可以自己用绘画工具创建一个角色。

 

新建鲨鱼角色后,

点击“造型”标签,可以看到这个角色有三个造型,

不同造型的切换,会让游戏更加逼真。

关于造型的使用,我们在脚本中再介绍。

慢教育Scratch教案分享 / 大鱼吃小鱼

现在需要对鲨鱼造型做一地简单修改

 

慢教育Scratch教案分享 / 大鱼吃小鱼

在造型编辑区,放大图片,选择矢量模式

采用“为形状填色工具”,

把鲨鱼牙齿的黑色填充成黄色,

因为我们在编辑脚本的时候,

需要有一个判断,

小鱼是否碰到鲨鱼牙齿,

这里我们设置一种特定的颜色,作为判断条件。

(这个颜色可以自由选择,只有能加以区分就可以。)

 

慢教育Scratch教案分享 / 大鱼吃小鱼

第二个角色为小鱼

我们在造型编辑区,

添加三种不同类型的小鱼,

在程序中,

可以随机显示,

以增加游戏的趣味性。

慢教育Scratch教案分享 / 大鱼吃小鱼

第三个角色,

我们定义一个比鲨鱼大的物种,

当鲨鱼碰到它时,game over

 

慢教育Scratch教案分享 / 大鱼吃小鱼

第四个角色,

我们选择章鱼

当鲨鱼碰到章鱼的时候,鲨鱼会变小。

章鱼有两个造型,

可以让章鱼游动时更加逼真。

  

角色设置完毕,下面开始编辑脚本。

 

首先编辑游戏主角色鲨鱼的动作。

 

用键盘的上下左右键控制鲨鱼移动

当鲨鱼吃到比它小的鱼时,

吃掉小鱼,自己变大

当鲨鱼吃到比它大的鱼时,

显示“OI am dead”,游戏over

当鲨鱼吃到章鱼时,自己变小

 

点击绿旗游戏开始

我们给鲨鱼一个初始大小,

这里设定为80

另外,

需要设置鲨鱼的旋转方向为左右方向,

避免鲨鱼上下倒置

我们用四个“如果……那么”指令,

加上按“键是否按下”的侦查模块作为判断条件

用一个重复执行命令

代码如下:

慢教育Scratch教案分享 / 大鱼吃小鱼

 

然后编辑小鱼的动作

 

游戏开始时,

我们随机选择小鱼角色的一个造型

怎么实现呢?

 

我们采用了一个“连接”和“随机数”两个运算符模块,

生成一个随机的造型名称

 

慢教育Scratch教案分享 / 大鱼吃小鱼

 

然后用切换造型模块,合成如下:

 

慢教育Scratch教案分享 / 大鱼吃小鱼

 

为避免单调,

小鱼角色初始大小,也采用随机的方式

鲨鱼的初始大小为80

我们生成一个5070之间的随机数,

作为小鱼的大小

 

慢教育Scratch教案分享 / 大鱼吃小鱼

 

同样的,运动方向也随机生成

 

慢教育Scratch教案分享 / 大鱼吃小鱼

 

小鱼的移动速度也随机生成

用重复执行,让小鱼移动

碰到边缘反弹

 

慢教育Scratch教案分享 / 大鱼吃小鱼

 

小鱼这个角色的关键是

需要判断是否碰到鲨鱼的牙齿

碰到的时候还需要再判断,

比鲨鱼大还是小?

如小,被鲨鱼吃掉,

如大,game over

 

第一个判断用是否碰到鲨鱼牙齿的颜色,

我们这里设置了黄色

鼠标点击这个模块的方框处

,鼠标变成手形

在鲨鱼牙齿处,

点选黄色,即可拾取颜色

 

慢教育Scratch教案分享 / 大鱼吃小鱼

第二个判断用两个角色的大小为参数,

用运算符进行比较

小鱼角色大小,在“外观”模块里面选择“大小”

 

慢教育Scratch教案分享 / 大鱼吃小鱼

鲨鱼角色的大小

需要用到侦查模块里的状态获取

点击“X坐标”边上的黑色小三角,

慢教育Scratch教案分享 / 大鱼吃小鱼

出现下拉菜单,选择“大小”

 

慢教育Scratch教案分享 / 大鱼吃小鱼

小鱼判断脚本合成如下:

 

慢教育Scratch教案分享 / 大鱼吃小鱼

上面的脚本中,还有两条广播消息

当小鱼碰到鲨鱼牙齿,并且小鱼比鲨鱼小

此时,发出一个“eat”广播消息

否则,发出一个“over”广播

 

小鱼的完整脚本如下:

 

慢教育Scratch教案分享 / 大鱼吃小鱼

然后我们来考虑发出“eat”广播后

各个角色都需要处理什么情况?

 

当小鱼接收到“eat”消息后

它从当前屏幕消失

稍后在屏幕的随机位置生成一条新的小鱼

同样,小鱼大小为5070之间随机数

代码如下:

 

慢教育Scratch教案分享 / 大鱼吃小鱼

当鲨鱼接收到“eat”消息后

让它发出一个音效

然后出现张开大嘴的造型

最后,让鲨鱼大小增加一个单位

代码如下:

 

慢教育Scratch教案分享 / 大鱼吃小鱼

当鲨鱼接收到“over”广播后

显示“oI,m  dead.”然后“停止全部”

如下:

 

慢教育Scratch教案分享 / 大鱼吃小鱼

同样方法处理螃蟹角色

只是我们把它的初始化大小设置为比鲨鱼咬大

90110之间选择一个随机数作为初始大小

尽管螃蟹的初始大小要比鲨鱼大

当鲨鱼吃掉足够的小鱼,也有可能变得比螃蟹大

所以,也要处理螃蟹被鲨鱼吃掉的情况

这里需要定义一个新的广播消息

我们设置了“eat2”广播消息

 

慢教育Scratch教案分享 / 大鱼吃小鱼

螃蟹收到“eat2”广播后

 

慢教育Scratch教案分享 / 大鱼吃小鱼

 

鲨鱼收到“eat2”广播后

 

 慢教育Scratch教案分享 / 大鱼吃小鱼

 

然后我们定义章鱼的运动

初始化大小

 

慢教育Scratch教案分享 / 大鱼吃小鱼

 

设定章鱼从水底随机位置往上游

 

慢教育Scratch教案分享 / 大鱼吃小鱼

游到水面后,回到水底重新上游

y坐标判断

 

慢教育Scratch教案分享 / 大鱼吃小鱼

随机速度上升

 

慢教育Scratch教案分享 / 大鱼吃小鱼

上升过程中,变换造型

 

慢教育Scratch教案分享 / 大鱼吃小鱼

如果鲨鱼牙齿碰到章鱼,发出“small”广播

 

慢教育Scratch教案分享 / 大鱼吃小鱼

完整代码如下

 

慢教育Scratch教案分享 / 大鱼吃小鱼

 

鲨鱼收到“small”广播时

发出一个音效

角色大小减少一个单位

代码如下:

 

慢教育Scratch教案分享 / 大鱼吃小鱼

 

整个游戏脚本编写完毕

运行效果如下

 

 

 

如果有兴趣,

你还可以给游戏增加计分功能

想想,该怎么实现?

您必须 登录 才能发表评论!