动画中发现的问题,在帧事件监听内的代码新增动画,将会连续播放2次,不知这算不算bug,
如果是这样,那2.x版本要想实现一场战斗动画,必须将所有技能动画做到一个Layer的csb中,
通过帧序号分区段,无数次帧事件监听来实现?
//播放英雄出场动画
auto action = CSLoader::createTimeline("BattleLayer.csb");
battleRoot->runAction(action);
action->gotoFrameAndPlay(0, false);
//出场动画监听,播放结束开始战斗
action->setFrameEventCallFunc(=](Frame* frame){
auto event = dynamic_cast<EventFrame*>(frame)->getEvent();
if (event != "BattleLayer_end")
{
return;
}
//test
//火球飞行动画
auto fly = Sprite::create("Action/skill0/fly_00.png");
battleRoot->addChild(fly);
fly->setPosition(50, 50);
fly->setVisible(false);
auto move = MoveTo::create(2.0f, Vec2(500, 960));
fly->runAction(Sequence::create(
DelayTime::create(2.0f),
CallFunc::create(=]{fly->setVisible(true); }),
move,
CallFunc::create(=]{fly->removeFromParentAndCleanup(true);}),
nullptr));
});