【Scratch案例实操】大鱼吃小鱼(完整详案)

案例名:大鱼吃小鱼

一、案例介绍

在本次案例中模拟海洋环境,海底生物在弱肉强食的竞争下,用以大吃小的方式获得生存,你不但得觅食以填饱肚子,更重要的是学会保护自已! (本次案例模拟了6种海洋生物,小朋友可以根据自己所学以及自己喜好增删不能的海洋生物)

二、角色分析

自己(开始一条小丑鱼),其它不同的海洋生物(6种)  (螃蟹→小丑鱼→神仙鱼→蝴蝶鱼→黄金吊鱼→鲨鱼)

三、背景分析

海底或者水下

四、游戏规则

  • 游戏开始角色是一条小丑鱼(级别1)
  • 通过方向键(上下左右)控制角色移动
  • 每种海洋生物都有自己对应的等级,得分和游动速度

  • 角色只能吃比自己级别低的海洋生物
  • 角色吃到和自己级别一样或者比自己级别高的海洋生物,游戏结束从头开始(得分0、级别1)
  • 海洋生物在被吃到之后将会随机出现
  • 角色在海底吃小鱼的成长变化:小丑鱼→神仙鱼→蝴蝶鱼→黄金吊鱼→鲨鱼
  • 角色升级条件
  1. 得分大于10分升级神仙鱼
  2. 得分大于50分升级蝴蝶鱼
  3. 得分大于120分升级黄金吊鱼
  4. 得分大于300分升级鲨鱼
  • 为了增加可玩性,刚开始只有前2种海洋生物(螃蟹和小丑鱼)出现,每当角色升一级,就会有更高一级的海洋生物出现

五、流程分析

5.1、玩家角色流程分析:

会有多个程序并行直行(开始、上、下、左、右、被吃了)。

1、开始(程序启动的时候,初始大小、位置、造型、变量初始化、成长过程)

  • 开始:程序启动(小绿旗)。
  • 初始大小:角色需要有一个大小设定(40),这个小朋友可以根据自己的视觉效果自行设定,只要能让我们的角色看出有一个成长的过程(慢慢变大)。
  • 初始位置:角色开始的时候有一个初始位置(X:Y),采用坐标系固定(0:-50)。
  • 初始造型:角色里面内置了多个造型(小丑鱼→神仙鱼→蝴蝶鱼→黄金吊鱼→鲨鱼),在游戏中不断吃小鱼慢慢长大会有一个造型的切换,刚开始是小丑鱼的造型。
  • 变量初始化:包括得分变量(0),级别变量(1)。
  • PS:得分变量为全局变量(适用于所有角色),级别变量为私有变量(适用于当前角色)

   4个菱形代表着4个升级的条件判断:

   小朋友们这里要注意下,我们这4个判断语句都只用单一结果条件判断(如果...那么)

  • 得分大于10:角色在开始的时候只能吃螃蟹,大于10分之后就升级为2级,造型为神仙鱼,大小设定为43,发送一个广播消息(升1级),这个消息是发给神仙鱼的,告诉它你可以出场了(升级后角色级别2,能吃0、1级别的生物,神仙鱼级别2,不能吃,这样就有可玩性)。
  • 得分大于50:大于50分之后就升级为3级,造型为蝴蝶鱼,大小设定为46,发送一个广播消息(升2级),这个消息是发给蝴蝶鱼的,告诉它你可以出场了(升级后角色级别3,能吃0、1、2级别的生物,蝴蝶鱼级别3,不能吃,同样为了可玩性)。
  • 得分大于120:大于120分之后就升级为4级,造型为黄金吊鱼,大小设定为49,发送一个广播消息(升3级),这个消息是发给黄金吊鱼的,告诉它你可以出场了(升级后角色级别4,能吃0、1、2、3级别的生物,黄金吊鱼级别4,不能吃,同样为了可玩性)。
  • 得分大于300:大于300分之后就升级为5级,造型为鲨鱼,大小设定为52,发送一个广播消息(升4级),这个消息是发给鲨鱼的,告诉它你可以出场了(升级后角色级别5,能吃0、1、2、3、4级别的生物,鲨鱼级别4,不能吃,同样为了可玩性)。
  • PS:最后改变大小又有一个箭头指向我们第一个判断得分是否大于0,这其实是将我们的4个判断放在我们循环结构里面,这样我们程序会不断的进行判断,而不是程序执行一次之后就不执行了。

2、向上游走

  • 按下↑键:当我们键盘的向上键被按下的时候,该直行的程序指令。
  • 将Y坐标增加10:将角色纵坐标Y的值增加10像素(我们的舞台是由横坐标(X)和纵坐标(Y)构成,他们的取值范围分别是:X(-240——240),Y(-160——160))。

3、向下游走

  • 按下↓键:当我们键盘的向下键被按下的时候,该直行的程序指令。
  • 将Y坐标增加-10:将角色纵坐标Y的值增加-10像素,负值在Y轴就是向下移动。

4、向左游走

  • 按下←键:当我们键盘的向左键被按下的时候,该直行的程序指令
  • 将X坐标增加-10:将角色横坐标X的值增加-10像素,负值在X轴就是向左移动
  • 面向-90方向:将角色的朝向改成-90°方向,正常角色朝向是90°的方向(如下图)

     

5、向右游走

  • 按下→键:当我们键盘的向右键被按下的时候,该直行的程序指令。
  • 将X坐标增加10:将角色横坐标X的值增加10像素,正值在X轴就是向右移动。
  • 面向90方向:将角色的朝向改成90°方向,虽然正常角色朝向是90°的方向(如上图),但是我们按完向左键的时候角色就项-90°方向了,所以我们在按向右键的时候需要调整角色的朝向。

6、被吃了

  • 被吃了:角色在被其它海洋生物吃了之后会收到一个消息(被吃了),这个消息是由其它海洋生物发出的(当前海洋生物的级别大于等于角色级别,角色碰到之后就会发出一个消息(被吃了))。
  • 隐藏:就是模拟角色被吃了,然后就消失了
  • 重置变量:包括重置得分变量(0),级别变量(1);重新回到开始时候的变量值。
  • 等待2秒:是控制角色消失时间,2秒之后重新复活(而不是直接结束游戏)。
  • 显示:重新复活了。
  • 初始位置:将角色重新回到开始时的位置。
  • 初始造型:恢复角色的初始造型(小丑鱼)。
  • PS思考:小朋友们也可以设置角色的复活次数,比如只有3条生命;3次之后游戏结束

5.2、螃蟹流程分析:

螃蟹只有一个流程,就是程序开始之后,螃蟹是在程序启动的时候就会出现。

  • 开始:程序启动(小绿旗),程序启动之后该执行的程序模块在这个之后。
  • 初始位置:我们的螃蟹从左边出来,但是纵坐标的位置不固定,在海底及上面一部分的随机位置(小朋友们还可以复制一只小螃蟹,让一只螃蟹从右边出来)。
  • 变量初始化:螃蟹只有一个变量那就是级别,螃蟹的级别设定为0。
  • 游走:螃蟹每次游走的步数即螃蟹的游动速度(移动3步)。
  • 是否碰到角色:判断我们控制的角色自己是否碰到螃蟹,也就是我们控制的鱼是否吃到螃蟹。
  • 得分+1:吃到螃蟹之后得分变量+1。
  • 隐藏:螃蟹被吃掉之后要消失,所以通过隐藏来实现。
  • 重置位置:螃蟹被吃掉之后,会在新的不确定的位置重新产生一只。
  • 显示:新的螃蟹产生之后要显示出来。
  • 碰到边缘翻转:螃蟹在游走的时候有可能碰到边缘,所以在碰到边缘的时候需要让他翻转,不然螃蟹就会一直在舞台边缘。

  • 设置翻转方式:碰到边缘翻转之后需要设置一个翻转方式,具体可以查看之前发布的设置翻转方式解释

  • 时间戳:这个是用来控制螃蟹游走的时间间隔,让螃蟹不要一直不断的走,有一点间隔,当然这个小朋友们可以设置,也可以不设置。

5.3、小丑鱼流程分析:

小丑鱼和螃蟹一样,只有一个流程,就是程序开始之后就会出现。

  • 开始:程序启动(小绿旗),程序启动之后该执行的程序模块在这个之后。
  • 初始位置:我们的小丑鱼从左边出来,但是纵坐标的位置不固定,在舞台的随机位置(小朋友们还可以复制一只小丑鱼,让一只小丑鱼从右边出来)。
  • 变量初始化:小丑鱼只有一个变量那就是级别,小丑鱼的级别设定为1。
  • 游走:小丑鱼每次游走的步数即小丑鱼的游动速度(移动5步)。
  • 是否碰到角色:判断我们控制的角色自己是否碰到小丑鱼,也就是我们控制的鱼是否吃到小丑鱼。
  • 角色级别是否大于当前级别:在角色碰到小丑鱼之后需要判断角色的等级是否比我们小丑鱼的等级高,只有角色级别高于我们小丑鱼的级别才能吃,否则就是被吃了
  • PS:这边有个嵌套的判断(两个判断),需要先判断是否碰到,碰到之后还要判断级别大小,才能决定谁吃谁。
  • 得分+2:吃到小丑鱼之后得分变量+2。
  • 隐藏:小丑鱼被吃掉之后要消失,所以通过隐藏来实现。
  • 重置位置:小丑鱼被吃掉之后,会在新的不确定的位置重新产生一只。
  • 显示:新的小丑鱼产生之后要显示出来。
  • 碰到边缘翻转:小丑鱼在游走的时候有可能碰到边缘,所以在碰到边缘的时候需要让他翻转,不然小丑鱼就会一直在舞台边缘。
  • 设置翻转方式:碰到边缘翻转之后需要设置一个翻转方式,具体可以查看之前发布的设置翻转方式解释
  • 时间戳:这个是用来控制小丑鱼游走的时间间隔,让小丑鱼不要一直不断的走,有一点间隔,当然这个小朋友们可以设置,也可以不设置。

5.4、神仙鱼流程分析:

神仙鱼和小丑鱼以及螃蟹有点不一样,神仙鱼在开始的时候并没有出现,而是等角色升一级之后才出现,所以为了实现这个,我们这边采取两个并行程序块来实现:开始和收到消息(升1级)

1、开始流程

  • 开始:程序启动(小绿旗),程序启动之后该执行的程序模块在这个之后。
  • 隐藏:之所以需要隐藏,是因为程序启动的时候我们的神仙鱼并没有出现,而是等待角色升1级之后才出现,所以通过隐藏来控制。
  • 初始位置:我们的神仙鱼从左边出来,但是纵坐标的位置不固定,在舞台的随机位置(小朋友们还可以复制一只神仙鱼,让一只神仙鱼从右边出来)。
  • 变量初始化:神仙鱼只有一个变量那就是级别,小丑鱼的级别设定为2。
  • 游走:神仙鱼每次游走的步数即神仙鱼的游动速度(移动6步)。
  • 是否碰到角色:判断我们控制的角色自己是否碰到神仙鱼,也就是我们控制的鱼是否吃到神仙鱼。
  • 角色级别是否大于当前级别:在角色碰到神仙鱼之后需要判断角色的等级是否比我们神仙鱼的等级高,只有角色级别高于我们神仙鱼的级别才能吃,否则就是被吃了
  • PS:这边有个嵌套的判断(两个判断),需要先判断是否碰到,碰到之后还要判断级别大小,才能决定谁吃谁。
  • 得分+3:吃到神仙鱼之后得分变量+3。
  • 隐藏:神仙鱼被吃掉之后要消失,所以通过隐藏来实现。
  • 重置位置:神仙鱼被吃掉之后,会在新的不确定的位置重新产生一只。
  • 显示:新的神仙鱼产生之后要显示出来。
  • 碰到边缘翻转:神仙鱼在游走的时候有可能碰到边缘,所以在碰到边缘的时候需要让他翻转,不然神仙鱼就会一直在舞台边缘。
  • 设置翻转方式:碰到边缘翻转之后需要设置一个翻转方式,具体可以查看之前发布的设置翻转方式解释
  • 时间戳:这个是用来控制神仙鱼游走的时间间隔,让神仙鱼不要一直不断的走,有一点间隔,当然这个小朋友们可以设置,也可以不设置。

2、接收到升1级消息流程

  • 接收到升1级:角色升1级之后会发送一个消息(升1级),神仙鱼在接收到这个消息之后表示我该出场了。
  • 显示:神仙鱼出现在舞台上(之前程序启动的时候是隐藏状态看不到的)。

5.5、蝴蝶鱼流程分析:

蝴蝶鱼和神仙鱼的流程基本一样,蝴蝶鱼在开始的时候并没有出现,而是等角色升2级之后才出现,所以为了实现这个,我们这边采取两个并行程序块来实现:开始和收到消息(升2级)

PS:流程图解析可参考神仙鱼的解析,唯一的区别就是蝴蝶鱼级别为3,移动速度7步,吃到蝴蝶鱼得分变量+4

5.6、黄金吊鱼流程分析:

黄金吊鱼和神仙鱼的流程基本一样,蝴蝶鱼在开始的时候并没有出现,而是等角色升3级之后才出现,所以为了实现这个,我们这边采取两个并行程序块来实现:开始和收到消息(升3级)

PS:流程图解析可参考神仙鱼的解析,唯一的区别就是黄金吊鱼级别为4,移动速度8步,吃到蝴蝶鱼得分变量+5

5.7、鲨鱼流程分析:

蝴蝶鱼和神仙鱼的流程基本一样,蝴蝶鱼在开始的时候并没有出现,而是等角色升4级之后才出现,所以为了实现这个,我们这边采取两个并行程序块来实现:开始和收到消息(升4级)

PS:流程图解析可参考神仙鱼的解析,唯一的区别就是鲨鱼级别为5,移动速度10步,吃到蝴蝶鱼得分变量+6

5.8、背景流程分析:

背景这边主要是将音乐模块放在这里进行播放(这个小朋友们可选)

  • 开始:点击小绿旗程序启动之后需要执行的程序模块放在这个之后。
  • 播放音乐1&播放音乐2:我这里是放了两个不同的背景音乐。
  • PS:播放音乐2后面又有一个箭头指向播放音乐1,是为了两个背景音乐之间循环播放。

六、具体案例实现

角色的代码梳理(之前角色流程分析的时候确定了角色有6个并行的事件,我们逐一梳理)

6.1、玩家角色

1、角色一开始时候(程序启动时候)需要执行的程序模块

  • 开设就是小绿旗
  • 初始大小35
  • 初始位置停止舞台中间偏下一点(-50)
  • 初始造型是小丑鱼,角色总共有5种造型分别是(小丑鱼→神仙鱼→蝴蝶鱼→黄金吊鱼→鲨鱼)
  • 初始变量,我们这边有两个变量,一个是得分变量(适用于所有角色),初始值为0;一个是等级变量(只适合当期角色),角色开始是小丑鱼等级为1

接下来就是角色升级的成长模块程序代码

  • 总共有4次升级过程,所以会有4个不同的条件判断来判断角色是否达到升级

  • 4个升级模块代码类似,我们就拿其中第一个升级模块来分解
  • 升1级的条件是得分大于10,也就是小丑鱼吃了10只螃蟹之后,在吃到第11只螃蟹也就是11分了,角色就会升级
  • 升级后需将角色等级设为2(刚开始是1)
  • 升级后换成下一个造型(神仙鱼)
  • 广播升一级消息:是为了告诉神仙鱼,你该出场了(开始的时候海洋里是没有神仙鱼的)
  • 将大小设为43:这个是将我们的角色变大(模拟角色成长的过程,不仅改变造型,大小也在变)

PS:后面的3级、4级、5级类似,只是对应的级别、造型、大小不一样,发送的广播消息也是给对应的鱼,告知他们该出场了。

最后组合完整的程序模块如下:

2、按(上、下、左、右)键执行的程序模块

PS:XY坐标增加好理解,为什么按左右键的时候需要调整方向,这个可以参考之前的Scratch大鱼吃小鱼《一》的程序分析

3、被吃了程序模块

  • 由于我们角色在移动的时候有可能碰到和我们级别一样甚至更高级的鱼,这个时候碰到了就会被吃掉
  • 具体的程序流程分析也可以参考之前的Scratch大鱼吃小鱼《一》的程序分析

到此,我们角色的程序梳理就全部完成(当然小朋友可以实现一个角色在被吃掉3次之后游戏结束,模拟我们是有生命次数的3次)。

6.2、螃蟹的代码梳理

1、螃蟹就只有一个程序块(也就是程序启动的时候)

  • 初始位置:这里是将螃蟹的初始位置放置在海底(-160-20)之间的随机一个位置
  • 变量:螃蟹就一个自身变量等级,级别0是我们这个场景中最低级的海洋生物

2、接下来就是螃蟹游走以及如何判断角色是否吃到螃蟹

  • 小朋友们可以参考之前的螃蟹的流程图分析
  • 游走:我们这里是通过移动3步表示每次螃蟹游走的一个速度。
  • 判断语句:是判断我们的角色是否吃到了螃蟹,通过碰撞检测来实现,碰到之后得分加1,然后螃蟹被吃到就通过隐藏的方式来表示,1秒钟之后又随机从左边出现
  • 碰到边缘和左右翻转:这个是模拟螃蟹游走的时候碰到舞台边缘进行一个回游。

3、完整的螃蟹程序如下:

6.3、小丑鱼和其它的程序如下(就不一一做说明了)

七、案例演示

【Scratch案例演示】Scratch大鱼吃小鱼

八、知识点回顾

  • 熟练掌握多条件判断语句的分析和使用
  • 熟练掌握循环结构和分支结构的嵌套使用
  • 熟练分析并设计角色升级结构
  • 熟练使用消息广播与接收模块
  • 熟练掌握碰撞检测机制的使用

九、拓展练习

  • 添加更多的海洋生物
  • 设计更复杂的升级机制
  • 加入随机的障碍及危险情节丰富游戏的可玩性

猜你喜欢

转载自blog.csdn.net/frank2102/article/details/107892470