跳伞的男孩-位移动画原理及Scratch实现

什么是位移动画?

在前面的课程中,我们提到动画有两种,一种是帧动画,另外一种则是位移动画。前面已经详细介绍了,帧动画的动画原理及Scratch的编程实现。这一次我们来学习位移动画。

那么什么是位移动画呢?

简单来说,就是设置好角色的初始位置和终点位置,让角色经过一定的时间,从初始位置慢慢移到终点位置,从而形成了动画西效果。

根据上面的描述,可以找出要实现位移动画,有如下3个要素:

  • 起点位置
  • 终点位置
  • 移动速度

作品预览

接下来我们就利用位移动画的原理,使用Scratch创作《跳伞的男孩》,先来看看作品的效果吧,如图所示:

跳伞的男孩动画效果
跳伞的男孩动画效果

本作品一共有5个角色,分别是降落伞、小鸟以及3多云彩,启动程序后,在蓝蓝的天空中,小男孩携带着降落伞从天而降,伴随着浮动的白云和上下翻飞的小鸟,动感十足。

Scratch编程实现

接下来,就使用Scratch一步一步来实现本作品。

1. 添加舞台背景和角色

打开Scratch编程软件,将准备好的背景图片和角色添加到Scratch中,如图所示:

添加舞台背景和角色
添加舞台背景和角色

2. 降落伞角色

当启动程序后,降落伞角色从舞台的最上方开始下落,下落到一定高度之后,就开始上下来回移动,初始化位置在舞台上方,我们可以使用三步定位法来确定其位置。

什么是三步定位法呢?所谓的三步定位法就是分三步,即“一拖、二看、三找”,一拖就是使用鼠标将角色拖到目标位置,二看就是看角色列表区的角色信息中的x和y坐标值,三找则是在运动模块中找到“移到(x,y)指令”,再将其拖到脚本区。

下降的过程,其实就是y坐标不断减小的过程,因此,我们可以使用循环结合减小坐标指令。由于,降落的过程,有一个透明度的变化,又模糊逐渐变得清晰,这个需要用到角色特效指令,及虚像特效,因此,可以编写代码如下:

降落伞逐渐下落动画
降落伞逐渐下落动画

针对这段代码,需要注意两点:

  • 这里加了一个“移动最前面”指令,目的是让降落伞在最上层,避免被云彩挡住了。
  • 虚像就是指透明度,透明度越高,就越透明,最高是100,此时完全透明,也就看不见了,为0时,完全不透明

当到达半空后,降落伞会上下来回移动,怎么做最简单呢?Scratch为我们提供了一个快捷指令“在1秒内滑行到(x,y)”指令,因此可以使用两条此指令,先上滑在下滑,不断的重复这个过程,对应的添加代码如下:

上下来回滑动代码
上下来回滑动代码

这里的坐标值,只需要改变y即可。

3. 小鸟角色

启动程序后,小鸟并没有移动,当降落伞降落到半空中时,小鸟才开始移动,这个可以使用等待指令来实现,上下来回滑动的效果可以继续使用滑行指令来实现,完整的代码如下:

小鸟上下滑行效果
小鸟上下滑行效果

注意:这里的等待2秒,其时间是根据降落伞降落的时间来估算的,经过测试得到的,并不是完全精确的时间。如果要想100%的精确,应该使用事件广播机制,这个后面会详细讲到。

4. 云彩角色

云彩角色的效果和小鸟差不多,不同的是小鸟是上下来回移动,而云彩则是左右来回移动,只需要确保来回改变x的坐标即可,以云彩1角色为例,编写代码如下:

云彩1角色来回移动效果
云彩1角色来回移动效果

云彩2和云彩3角色的代码基本一样,只需要修改其坐标值即可。至此,整个作品就完成了。

小结

本文通过创作《跳伞的男孩》,详细讲解了在Scratch中如何实现位移动画的方法,重点注意以下3点:

  • 可以使用三步定位法技巧来对角色进行定位,简单易操作
  • 角色的移动有三种方式,一是瞬移,二是滑行,三是循环+移动10步,要注意三者的区别
  • 虚像特效指令的作用及虚像值的设置,越大越透明

帧动画的原理是怎样的,Scratch又是如何实现的呢?不妨看这篇文章,骑自行车动画-帧动画原理及Scratch实现

© 版权声明
THE END
喜欢就支持一下吧
点赞15赞赏
分享
评论 抢沙发
diamondwang的头像-51scratch

昵称

取消
昵称表情代码图片