鱼儿鱼儿水中游,游来游去乐悠悠,倦了卧水草,饿了觅小虫。夏日午后的池塘中,一群鱼儿在水中嬉戏,它们一边游还一边吐泡泡,好像在和我们说话呢。
不知道你有没有仔细观察过鱼缸里的金鱼,它们一边欢快的游着,一边吐着泡泡,好不惬意。今天我们将使用Scratch编程来模拟鱼儿在水中吐泡泡的动画效果。
作品效果抢先看
先来看看作品的效果吧,如视频所示:
功能分析
在动手创作之前,需要先将要实现的效果和功能明确下来,根据作品效果预览,大致可以分为如下4点:
- 在舞台上放一条鱼儿和一个泡泡;
- 让鱼儿在水中自由的游走;
- 鱼儿不断吐出泡泡,同时会发出吐泡泡的音效;
- 让泡泡边向上浮动边消失。
Scratch编程实现
根据刚才的分析,接下来我们就使用Scratch一步一步编程实现鱼儿吐泡泡的动画效果。
1.添加舞台背景和角色
打开Scratch编程软件,将准备好的舞台背景图片和角色导入到Scratch中,如图所示:

2.鱼儿游动起来
首先,我们要让鱼儿在水中自由游动,这个可以通过重复执行移动指令来实现,当小鱼儿游到舞台边缘时,它就会停下来,此时可以使用碰到舞台边缘就反弹指令让鱼儿掉头继续游动。当然了,为了避免鱼儿只是单调的左右来回移动,可以设置一下鱼儿的初始方向,这样可以让鱼儿的游动看起来更自然一些,选中鱼儿角色,编写代码如下:

需要说明的是,这里的方向可以进行自由的调整,只要不等于90、-90、0和180就可以,同样的,移动指令中的2也是可以更改的,数字越大,则鱼儿跑的就越快。
3.克隆泡泡
接着,我们就可以添加鱼儿吐泡泡的效果了,到底要吐多少个泡泡呢?只要程序在运行,鱼儿在游动,就一直会吐泡泡,所以没有固定的个数,或者说是无限个,因此,这里必须使用克隆。可以在鱼儿角色中进行克隆,也可以在泡泡角色中进行克隆,为了体现是鱼儿在吐泡泡,这里我们选择在鱼儿角色中进行克隆,在鱼儿角色添加新的代码块如下:

注意:在克隆泡泡的过程中,为了避免过快,在这里使用了等待1秒指令,同时为了让吐泡泡的动作看起来更自然一些,避免造成机械刻板的效果。
4.让泡泡浮动起来并消失
如果此时运行程序,你根本看不到多个泡泡,这是因为泡泡始终在原地克隆自己,所有的泡泡克隆体都重叠在一起了。因此,需要对克隆体编写程序,让泡泡动起来,同时可以通过逐渐改变泡泡角色的虚像(也就是透明度),让泡泡看起来慢慢消失的效果,切换到泡泡角色,编写代码如下:

看起来似乎是编写好了,但是当你运行程序,仔细观察泡泡的效果,你会发现一个致命的bug,是的,泡泡并不是从鱼儿的嘴巴里吐出来的,如何解决这个讨厌的bug呢?
比较好的解决方案是借助变量,将克隆泡泡时所处的位置计算出来并保存,然后在克隆体中使用,因此,我们需要建立两个变量,分别命名为“泡泡坐标x”和“泡泡坐标y”,当鱼儿向右运动时,泡泡在鱼儿的右方,需要在鱼儿坐标的基础上增加相应步数,这里大概90步;而当鱼儿向左运动时,泡泡在鱼儿的左方,此时需要减少90步。
切换到鱼儿角色,增加代码如下:

对应的在泡泡角色中,修改移动指令,如下:

再次运行程序,查看效果,可以发现,无论小鱼朝哪个方向游动,泡泡始终都是从鱼儿的嘴巴里冒出来的,效果非常的棒👍。
暂无评论内容