ActionTimeInterval的一些子类实现reverse为我们提供了不少便利,但和cocos协作的时候,目前只能提取到ActionTimeline,查看源码(既然开源,不看白不看。。嘿嘿),发现有一个方法可以实现reverse的功能,新增成员变量_reverse作为倒播的标志,在step函数里面判断播放的frameindex:
void ActionTimeline::step(float delta)
{
if (!_playing || _timelineMap.size() == 0 || _duration == 0)
{
return;
}
_time += delta * _timeSpeed;
if(_time < _endFrame * _frameInternal)
{
_currentFrame = (int)(_time / _frameInternal);
if(
_reverse)
_currentFrame = _endFrame - _currentFrame;
stepToFrame(_currentFrame);
}
实现reverse如此简单,大家顶起来!!!