作品介绍
今天为大家介绍的Scratch作品是《放烟花》,这是一款画笔艺术作品,作品巧妙的画笔及图章功能模拟了完美的烟花效果。
点击绿旗,运行程序,从舞台底部随机位置陆续的发射烟花,每一支都有不同的颜色,迅速升空,当飞到最高点时,只听一声爆炸,烟花在天空炸出了美丽的火花,然后像降落伞一样掉下来并消失,偶尔还会出现彩色的烟花爆炸效果。
作品效果
Scratch放烟花作品的完整效果如视频所示:
作品解读
本作品只使用了两个角色,如图所示:
接下来简单介绍一下实现的过程及原理。
1.烟花角色
对于烟花角色,我们是通过画笔来绘制的,每隔1~2秒左右发射一支烟花,分别设置不同的位置,不同的颜色,分别以不同的速度上升,由于受到重力的影响,运动的路线呈现抛物线形状,当到达最高点时,发生爆炸效果,其代码如图所示:
[注意]:这里的变量“垂直速度”开始为正数的时候,角色向上运动,当速度减小到0时,就表示到达最高点了。其中,“爆炸50”是一个自制积木,其代码如下:
需要注意的是,在定义自制积木的时候,需要勾选“运行时不刷新屏幕”,这里的如果语句,只是为了实现随机出现彩色烟花爆炸的效果,你在创作的时候,可以先不考虑,最后再添加。
通过自制积木生成的50个克隆体,要模拟爆炸的效果,它们会向四周散开,运动一段时间都消失了,可以使用画笔来绘制这个过程,代码如图所示:
为了确保每个克隆体的角度、水平速度、垂直速度是不一样的,因此,这里的3个变量需要设置为私有变量,也就是说,在建立变量的时候,需要勾选“仅适用于当前角色”。
2.遮罩层角色
运行当前程序,你可以发现,现在可以绘制出烟花爆炸的效果,但是每次绘制出的烟花还留在舞台上,而且还不能渐变。此时,我们就需要借助第二个角色了,也就是遮罩层角色,先上代码,如图:
代码其实非常简单,关键在于理解,遮罩层是一张黑色的图片,刚好占满整个屏幕,设置其虚像为90,接近完全透明效果,关键代码是重复执行图章指令,其左右是不停的复制接近透明的黑色图片,有了这段代码,就可以将之前绘制的烟花遮盖起来,更重要的是,它可以实现渐变效果,瞬间提升了整个作品的效果和档次^_^。
暂无评论内容