关键帧动画是一种非常灵活的动画系统,利用它可以做出各式各样的动画效果。
关键帧就是定义动画在关键时间的各项参数,其他时间的参数都由关键帧的参数插值得到。
因此要使用关键帧动画,首先必须了解在关键帧中可以设定哪些参数。
在无双引擎中,关键帧以Python数据类型“字典”的形式存放,例如:
我的关键帧 = 字典(时间=0, x=0, y=0, 旋转=0, 缩放X=1, 缩放Y=1, 透明度=255, 图片="背景\\背景1.png")
下面详细介绍每个参数的意义:
时间:该关键帧出现的时间。默认为0。单位为秒。
x:图元的x坐标。默认为0。
y:图元的y坐标。默认为0。
旋转:图元的旋转值,为角度值(0-359,大于360时自动对360求模)。默认为0。
缩放X:图元在X方向的缩放值。默认为1。
缩放Y:图元在Y方向的缩放值。默认为1。
透明度:图元的透明度。默认为255。
图片:要使用的图片。默认为空(无图片)。
下面是一个简单的背景/前景卷轴效果,通过两张图片的平移动画,模拟了背景/前景的循环卷轴。
这个效果要求图片的边缘必须能够无缝连接起来,不然会看到一条明显的缝隙。
平移特效1 = [
字典(时间=0, x=-800, y=0, 图片="系统\\mask5.gif"),
字典(时间=5, x=0)
]
平移特效2 = [
字典(时间=0, x=0, y=0, 图片="系统\\mask5.gif"),
字典(时间=5, x=800)
]
平移特效_模板 = 关键帧动画模板()
平移特效_模板.添加子动画(平移特效1)
平移特效_模板.添加子动画(平移特效2)
下面这个效果同时用到了图片平移和缩放,模拟了背景局部放大的效果。
背景放大1 = [
字典(时间=0, 图片="背景\\场景-侦探社-清晨.jpg"),
字典(时间=0.5, x=-200, y=-30, 缩放X=2, 缩放Y=2),
]
背景局部放大_模板 = 关键帧动画模板()
背景局部放大_模板.添加子动画(背景放大1, loop = 否) # loop = 否 表示这个子动画是不循环的
关键帧动画支持 显示 隐藏 淡入 淡出 震动 等指令。注意关键帧动画的结束由自身的 loop 属性控制,和 @完成动画() 这个API无关。
代码: 平移特效 = 平移特效_模板.克隆() 平移特效.显示() 平移特效.隐藏() 平移特效.淡入(0.5) 平移特效.淡出(1.5) 平移特效.震动(1.5)