# Animate

# animate(actor, tween, duration, on_finished, targets)

创建动画。

from cpgzero import *
alien = Actor('aline')
def on_finished():
    print("finished")
    
animate(alien, pos=(100, 100), duration=1, tween="liner", on_finished=on_finished)

tween 为补间动画类型:

  • linear 线性
  • accelerate 加速
  • decelerate 减速
  • accel_decel 先加速再加速
  • elastic_start 开始时反弹
  • elastic_end 结束时反弹
  • elastic_start_end 开始结束都反弹
  • bounce_start 开始时弹跳
  • bounce_end 结束时弹跳
  • bounce_start_end 开始和结束都弹跳

duration 为动画持续时间,单位为秒,默认1秒; on_finished 为动画结束后的回调函数; targets 可以为 posx, y, pos

from cpgzero import *

alien = Actor('alien')
animate(alien, duration=3, pos=(200, 200))

alien2 = Actor('alien')
animate(alien2, duration=1, x=400, tween="bounce_end")
    
alien3 = Actor('alien')
animate(alien3, y=400, tween="accel_decel")

alien4 = Actor('alien')
animate(alien4, angle=150)

# stop()

停止动画。

from cpgzero import *
alien = Actor('alien')
    
ani = animate(alien, pos=(200, 200), duration=3)
def stop():
    print("stop")
    ani.stop()

clock.schedule(stop, 0.5)

# running

动画是否正在播放中。

from cpgzero import *

alien = Actor('alien')
ani = animate(alien, duration=3, pos=(200, 200))

def on_mouse_down(pos):
    print(ani.running)