继承AnimationManagerBase的类有BasicAnimationManager和TimelineAnimationManager,之前我们一直
讨论的是BasicAnimationManager。
下面回忆一下BasicAnimationManager的驱动过程,
当执行BasicAnimationManager::playAnimation(Animation* pAnimation, int priority, float
weight)时候,一个Animation开始根据优先级和权重通过时间驱动,在具体的实现playAnimation中,
_animationsPlaying[priority].push_back(pAnimation);
// for debug
//std::cout <<
"player Animation " << pAnimation->getName() << " at " << _lastUpdate << std::endl;
pAnimation->setStartTime(_lastUpdate);
pAnimation->setWeight(weight);
就是设置了这个animation的开始时间和权重,然后加入_animationsPlaying map中,看看
_animationsPlaying在什么地方应用了,没错是update中,没一帧都在调用,遍历_animationsPlaying
中所有的animation,然后执行list[i]->update(time, priority),根据时间和优先级驱动每一个
animation。
这是BasicAni