极客小将

您现在的位置是:首页 » scratch编程资讯

资讯内容

Scratch第63讲:小动画—我和我的祖国

极客小将2020-11-29-
先看看CC哥做的小动画视频: 设计思路 思路很简单,就是首先找一张图片,然后做一些动画渲染效果。 图片就去百度图片上找:

先看看CC哥做的小动画视频:

设计思路

思路很简单,就是首先找一张图片,然后做一些动画渲染效果。

图片就去百度图片上找:

upload/article/images/2020-11-29/d1812462beff5c12c2d747c49993ef26.jpg

看了一下这张图片不错。

那做什么效果呢?第一个就是想让字能动,那就需要把这“我和我的祖国”这几个字扣出来,怎么扣呢?去掉图片背景,在scratch有两种办法,一种是在Scratch里面涂色,用透明的颜色涂色,或者就是在scratch里面用橡皮擦一点点擦,这两种办法都挺常用的,尤其是处理一些复杂些的造型。

所以做Scratch还是要掌握一些作图的技巧,CC哥最熟悉的还是美图秀秀,用了智能抠图,一下子就把我和我的祖国这几个字给抠出来了。

upload/article/images/2020-11-29/327ce9e296b54733ec12a8c162c36cbe.jpg

然后把每个字单独做成造型,就可以围绕着字来做动画了。

然后效果这个部分,经过仔细考虑,大概做三个效果:

1:配上音乐并做出动态节奏波形

2:烟花效果

3:字的特效

如果想免费获得CC哥的讲座中的程序代码以及游戏素材,可以通过扫描二维码关注《跟我学Scratch编程》,然后点击获取代码即可。

字的特效

先说最简单的,字的特效大家可以自己创意,CC哥最近编程也变懒了,竟然每个字用了个角色,一般高手都是用一个角色,然后用造型切换和克隆就好了。所以由此处可以看出CC哥并不是编程高手https://cdn.china-scratch.com/Public/Home/images/grey.gif

upload/article/images/2020-11-29/35c9d26705bb1ce023429023676f60ac.jpg

upload/article/images/2020-11-29/dcb4bde9cb1547fed6bc455e761a8f1f.jpg

CC哥就做了两个特效,一个是开始时,字从远处飞过来,逐渐变大。另一个效果就是不断地调整亮度。

烟花特效

烟花特效是CC哥在网上学的,所谓的烟花特效其实就是角色的轨迹处理,轨迹就是渐渐消失的过程。逐渐消失怎么做?就是用近乎透明的背景图片一层层的重复去覆盖,听明白没?说慢一点:用一个90%透明的背景图片覆盖一次的时候,被覆盖的画面就会淡一点,再覆盖一次,就会越淡一点,覆盖10次,画面就会被全部覆盖住了。把这个原理应用到轨迹里。一个角色在移动的过程中,不断地用图章去留下轨迹,然后这些轨迹图章被一层层覆盖掉,就形成了轨迹。

upload/article/images/2020-11-29/0d5866ed9978cc361d0258777ac9404d.jpg

就是把这个背景的透明度设成90%,然后不断地覆盖。(不想被覆盖的内容就移动到前面来

upload/article/images/2020-11-29/151fcbd47eeb097db8a5590952db34cc.jpg

。)

upload/article/images/2020-11-29/43cb53789063719e86a988bc2ae99522.jpg

然后烟花就简单了:

upload/article/images/2020-11-29/c7c0c084e0d7bbde847c57c60e59ffcf.jpg

烟花造型

upload/article/images/2020-11-29/0b162347275425d1f37d1b6aa1f10dca.jpg

第一步先克隆一圈,每转10度克隆一个。颜色的特效是随机取的。J这个变量来决定烟花的大小。

upload/article/images/2020-11-29/f5467b471e24386adf68853807fe498c.jpg

每个克隆体启动之后,就沿着自己的方向向四周扩散,变走变盖上图章。走的过程中不断改变颜色特效。

考虑重力的效果,就把重力效果的代码加上。

这样烟花就做好了,配合刚才的背景反复覆盖,就形成了烟花轨迹的效果。

为了增加烟花的效果,CC哥直接复制了三个一摸一样的烟花角色,这样就会让烟花出现的效果更逼真,比如几个烟花同时绽放。

音乐节奏

upload/article/images/2020-11-29/ba51bcc9148a5fce8d8d1149201b87c0.jpg

https://cdn.china-scratch.com/timg/191030/1546331E5-12.gif

画上方的变动正弦曲线就是表示音乐的节奏,我们的思路是:

1:用响度这个侦测量来取配乐的响度值。

upload/article/images/2020-11-29/e51c4a157a549e71e38b22620fb65dfa.jpg

2:用正弦曲线来表示响度,正弦曲线的振幅越高,就说明音乐越响。

3:引入计时器来增加曲线的效果。

upload/article/images/2020-11-29/a8b7d66a6f1d1363c713c6d288422bc7.jpg

这段程序里有一个列表,这个列表里CC哥存的就是我爱我的祖国音乐的响度值。这个怎么得到呢?方法就是提前用循环把音乐的响度值读出来并写入一个列表中。

upload/article/images/2020-11-29/423e666f6641c74d41947ec0137c890d.jpg

当然你也可以不用提前取响度值,而直接读取实时侦测的响度值。CC哥提前取响度值,是感觉实时取侦测响度值再画出正弦曲线还是有滞后的。当然提前取响度值,面临的问题就是播放同步的问题。就算你每个0.1秒取一次,然后在运行程序时,就发现就算你设定成0.1秒画一次正弦曲线,但是还是不同步,这是因为执行程序代码也需要时间,如果你提取响度值的程序代码和画正弦曲线的代码长度不一样,那么就会形成偏差,曲子长了之后你会发现偏差到最后还挺大。所以CC哥在提取响度值时就是直接在程序里提取,就是把sensor赋值的那句代码换成了提取响度值的代码。这样基本上就同步了。

upload/article/images/2020-11-29/7d148a19919e9c65e36fc81293c0c57d.jpg

upload/article/images/2020-11-29/8e09b55ee8b8addf0dbf1352c01884fa.jpg

这段程序就是画正弦曲线,三个变量分别代表,曲线x轴的起点,曲线y轴的位置,以及振幅的放大量。相当于x轴每间隔10步画一个竖道。

upload/article/images/2020-11-29/2b6b68d4159deddbfb21ac84734c231c.jpg

这是每一个竖道的代码:

公式不好理解,大家注意下面几点就好理解了:

1:第三句子是设定竖道的亮度,亮度值跟竖道的振幅有关。

2:第四句是找到画竖道的起点,第六句是竖道终点。

3:sensor的变量与正弦曲线的振幅相关。

4:计时器是为了让正弦曲线流动起来。大家可以试一下把计时器拿掉,就会发现效果的不同。

upload/article/images/2020-11-29/52580746b4a945f5aa8e17f5f7940d3a.jpg

飞机效果

最后在做帖子的时候,CC哥突然想把飞机编队也做进去,就费劲在网上又找了飞机的图片,然后还是用了轨迹的做法,把飞机拉彩带的效果也做进去了。

upload/article/images/2020-11-29/6361c178f324b33568518546c9c8cffa.jpg

克隆三个飞机,中间那个飞机的plane-num为0。克隆完第一个之后过0.6秒,再克隆上下两个,可以形成一个三角形编队。

https://cdn.china-scratch.com/timg/191030/1546355430-21.jpg

克隆体启动后,要检查一下,如果是上下两个飞机,则要先到出发的位置,然后再开始向左飞。

轨迹的造型,CC哥分别做了三个角色,每个角色不同的颜色。

https://cdn.china-scratch.com/timg/191030/1546351305-22.jpg

https://cdn.china-scratch.com/timg/191030/15463563D-23.jpg

轨迹的代码,很简单。结合前面那个背景反复覆盖的程序,就形成了飞行轨迹的效果。

CC哥做这个小动画虽然不完美,但是还是很应景,算是CC哥送给祖国的一份小礼物。这个代码不在全部程序打包的代码里面,如果想要这个小动画的素材和代码的朋友,就把这个帖子帮CC哥转发一下朋友圈吧。

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除

网友点评

共有5条评论来说两句吧...

在线客服