cocos2dx --- 笔记 容易弄混了四个类,CCSpriteFrame CCAnimationFrame CCAnimation CCAnimate

cocos2dx --- 笔记 容易弄混了四个类,CCSpriteFrame CCAnimationFrame CCAnimation CCAnimate,第1张

概述先来个总结吧。 CCSpriteFrame, 是精灵的单帧信息,内部储存了精灵的Rect和贴图(贴图仅仅是保存了指针) CCAnimationFrame,是动画的单帧信息,保存了一个SpriteFrame、动画的进度。 CCAnimation,动画信息类,保存完整的动画信息 CCAnimate,动画类,这个类才真正完成,具体的动画播放。它是CCActionInterval的子类。 实现2D精灵的帧

先来个总结吧。

CCSpriteFrame, 是精灵的单帧信息,内部储存了精灵的Rect和贴图(贴图仅仅是保存了指针)
CCAnimationFrame,是动画的单帧信息,保存了一个SpriteFrame、动画的进度。
CCAnimation,动画信息类,保存完整的动画信息
CCAnimate,动画类,这个类才真正完成,具体的动画播放。它是CCActionInterval的子类。


实现2D精灵的帧动画,遵循以下 *** 作步骤即可。

1、首先将所有的精灵帧读取进来,然后为每一帧创建一个SpriteFrame。

2、然后,创建一个CCAnimation,接着把所有的SpriteFrame按顺序添加进来。

这里如果使用了第一帧初始化,主角精灵的话,为了保证动画播放完成,需要调用一下setRestoreOriginalFrame函数

这个函数,设置当动画播放完成以后,是否释放第一帧,true为不释放。

3、然后,动画创建完成后,如果动画需要多次播放,可以加入到AnimationCache当中,

形式如下,第一个参数是CCAnimation,第二个是动画名。

CCAnimationCache::sharedAnimationCache()->addAnimation( pAnimation,"man" );

4、最后,在需要创建动画的地方,创建一个CCAnimate,然后把刚才创建好的CCAnimation传进去,再设置一下参数,就大功告成了。

接下来只需要选择合适的动画,再调用主角精灵的runAction就大功告成了。


示例代码:

	CCTexture2D *pTex = CCTextureCache::sharedTextureCache()->addImage( "man.png" );	CCSpriteFrame *frame0 = CCSpriteFrame::createWithTexture( pTex,CCRectMake(80*0,80*0,80,80));	CCSpriteFrame *frame1 = CCSpriteFrame::createWithTexture( pTex,CCRectMake(80*1,80));	CCSpriteFrame *frame2 = CCSpriteFrame::createWithTexture( pTex,CCRectMake(80*2,80));	CCSpriteFrame *frame3 = CCSpriteFrame::createWithTexture( pTex,CCRectMake(80*3,80));	CCSpriteFrame *frame4 = CCSpriteFrame::createWithTexture( pTex,CCRectMake(80*4,80));	initWithSpriteFrame( frame0 );	CCAnimation *pAnimation = CCAnimation::create();	pAnimation->setDelayPerUnit( 0.05f );	pAnimation->addSpriteFrame( frame0 );	pAnimation->addSpriteFrame( frame1 );	pAnimation->addSpriteFrame( frame2 );	pAnimation->addSpriteFrame( frame3 );	pAnimation->addSpriteFrame( frame4 );	CCAnimate *pAnimate = CCAnimate::create( 		CCAnimationCache::sharedAnimationCache()->animationByname( "man" ) );	CCActionInterval *pInterval;	pInterval = CCSequence::create( 		CCScaleto::create( 0.1f,2.0f ),pAnimate,CCScaleto::create( 0.1f,1.0f ),CCFlipX::create( false ),NulL );			this->runAction( pInterval );
总结

以上是内存溢出为你收集整理的cocos2dx --- 笔记 容易弄混了四个类,CCSpriteFrame CCAnimationFrame CCAnimation CCAnimate全部内容,希望文章能够帮你解决cocos2dx --- 笔记 容易弄混了四个类,CCSpriteFrame CCAnimationFrame CCAnimation CCAnimate所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1056844.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存