请教一个cocos2d-x的动画实现问题,本人菜鸟! 10

CCSprite*m_grossini=CCSprite::create("1.png");addChild(m_grossini,1);CCSizesize=CCDir... CCSprite *m_grossini = CCSprite::create("1.png"); addChild(m_grossini,1);
CCSize size = CCDirector::sharedDirector()->getWinSize();
m_grossini->setPosition(CCPointMake(size.width/2, size.height/3));

CCAnimation* animation = CCAnimation::create(); for( int i=1;i<4;i++)
{
char szName[100] = {0};
sprintf(szName, "%d.png", i);
animation->addSpriteFrameWithFileName(szName);
}
animation->setDelayPerUnit(2.8f / 14.0f);
animation->setRestoreOriginalFrame(false);

CCAnimate* action = CCAnimate::create(animation); m_grossini->runAction(CCSequence::create(action, action->reverse(), NULL));

这代码也就只能实现第一帧的图片,后面的怎么没有,是少了什么东西吗?该怎么改呢
?请那位大侠指点!谢谢
展开
 我来答
百度网友46465a24f
2013-03-13
知道答主
回答量:8
采纳率:0%
帮助的人:6万
展开全部
我用的是cocos2d;循环里animation->addSpriteFrameWithFileName(szName);可能有问题,我用的是 NSMutableArray把所有图片的名储存起来,上面的代码执行一次就行啦。。。你试试吧
你也可以用spritehelper做动画然后导入,可能会简单一点
这是我用cocos2d做动画的代码
NSMutableArray *frames =[[NSMutableArray alloc] init];
for(int n=1;n<=4;n++){
NSString *file=[NSString stringWithFormat:@"%i.png",n];
CCTexture2D *texture =[[CCTextureCache sharedTextureCache]addImage:file];
CGSize texSize =[texture contentSize];
CGRect texRect =CGRectMake(0, 0, texSize.width, texSize.height);
CCSpriteFrame *frame =[CCSpriteFrame frameWithTexture:texture rect:texRect];
[frames addObject:frame];
}
CCAnimation *anim=[CCAnimation animationWithFrames:frames delay:0.05f];
CCAnimate *animate =[CCAnimate actionWithAnimation:anim];
if(myjoystick.isTouched){
[characternode.sprite_1 runAction:animate];
}
yong921014
2013-03-21 · 超过13用户采纳过TA的回答
知道答主
回答量:74
采纳率:0%
帮助的人:32.4万
展开全部
CCMutableArray<CCSpriteFrame*>* animFrames = new CCMutableArray<CCSpriteFrame*>(6);

char str[64] = {0};
for(int i = 1; i <= 6; i++)
{
sprintf(str, "飞%04d.png", i);
CCSpriteFrame* frame = cache->spriteFrameByName( str );
animFrames->addObject(frame);
}

CCAnimation* animation = CCAnimation::animationWithFrames(animFrames,0.04f);

CCRepeatForever* mFly=CCRepeatForever::actionWithAction( CCAnimate::actionWithAnimation(animation, false));
animFrames->release();
cache->removeSpriteFramesFromFile(strPlist);

这是1.0的创建实现, 你先看看,希望有帮助
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式