大家看看我这段代码,目的是想一个动画动作,和一个移动动作同时进行,说白了就是想MoveTo的同时animate
但是效果却不是这样,这段代码执行后,一直以动画的第一帧在MoveTo,这是为什么呢啊??
bool AnimationAction::init()
{
if (!Layer::init())
{
return false;
}
auto visibleSize = Director::getInstance()->getVisibleSize();
auto spritecache = SpriteFrameCache::sharedSpriteFrameCache();
spritecache->addSpriteFramesWithFile("maggic.plist");
//定义一个Vector动态数组,存放SpriteFrame* 类型的数组数据
Vector spriteFrame;
char str = {0};
for (int i = 0 ; i < 10 ; i++)
{
sprintf(str,"maggic%d.png",i);
SpriteFrame* frame = spritecache->spriteFrameByName(str);
spriteFrame.pushBack(frame);
}
//创建动画,用精灵帧数组,两帧之间的时间间隔为0.1秒
auto animation = Animation::createWithSpriteFrames(spriteFrame,0.1f);
//创建动画动作
auto animate = Animate::create(animation);
//用缓冲池中的第一帧创建精灵
auto sprite1 = Sprite::createWithSpriteFrameName("maggic0.png");
sprite1->setPosition(Vec2(visibleSize.width/2,visibleSize.height/2));
//设置永久动画
auto repeataction = RepeatForever::create(animate);
//设置移动动作
auto actionMoveTo = MoveTo::create(3.0f,Vec2(visibleSize.width/3,visibleSize.height/3));
// 动画与动作同时进行===============这就有问题了!!!
sprite1->runAction(Spawn::create(repeataction,actionMoveTo,NULL));
this->addChild(sprite1);
return true;
}
```