cocos2d-x中两种播放精灵动画的方式

在手机游戏开发过程中,应用动画效果是必须的。在cocos2d-x中,如何组织动画,如下:

1.应用CCSpriteBatchNode,步骤如下:

1.1,使用CCSpriteFrameCache::sharedSpriteFrameCache()加载plist文件

1.2,使用CCSpriteBatchNode::create("Big_0.png", 34 );  函数从本地媒介中加载一个被拼合过的大图。这种方式有利于节省内存,提高渲染效果。

1.3,使用CCSpriteFrame::frameWithTexture函数,从CCSpriteBatchNode对象中加入一个指定位置,大小的图片,然后放在一个数组中。

1.4,使用CCAnimation::createWithSpriteFrames,从精灵帧容器创建一个序列帧动画。

1.5,使用CCAnimate::create(animatio );,从序列帧动画中创建一个动画动作,到动作之后,就可以使用这个动作了,然后在UI中,就可以看见这个动画了。

   例子,如下:

 

//第一步(1.1)

  1.  CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("pd_sprites.plist");
  2.  //pvr.ccz是由TexturePacker图片处理应用后的大图片。它将所有的相类的图片,组成在一起,这样一次性加载到内在中。
  3. //对机器的内在和性能有比较大的更善。
  4.  _actors = CCSpriteBatchNode::create("pd_sprites.pvr.ccz");
  5.  //消除龋齿
  6. _actors->getTexture()->setAliasTexParameters();
  7. this->addChild(_actors, -5);

//第二步(1.2)

    1. //创建精灵帧存放容器 
    2.         CCArray*    tSpriteFrameArray = CCArray::create(); 
    3.         //for循环进行读取相应数量的纹理块信息 
    4.         for(int b = 0 ; b < FrameNum; ++b) 
    5.         { 
    6.             //设置纹理不进行抗锯齿模糊,像素精细 
    7.             pNewBatchNode->getTexture()->setAliasTexParameters(); 
    8.             //设置从对应纹理块中读取出一个精灵帧 
    9.             CCSpriteFrame*  tpSpriteFrame = CCSpriteFrame::frameWithTexture(_actors->getTexture(), tRect, tPackNode.m_bRotated, tOffset, tRect.size); 
    10.             //将精灵帧放入容器。  
    11.             tSpriteFrameArray->addObject(tpSpriteFrame); 
    12.              
    13.         }

//第三步(1.3)

  1.         //从精灵帧容器创建一个序列帧动画。 
  2.         CCAnimation* animation = CCAnimation::createWithSpriteFrames(tSpriteFrameArray,1.0f);   
  3.         //设置每两帧间时间间隔为1秒。  
  4.         animation->setDelayPerUnit(1.0f);   
  5.         //设置动画结束后仍保留动画帧信息。  
  6.         animation->setRestoreOriginalFrame(true);   

//第四步(1.4)

  1.        //由这个动画序列帧创建建动作
  2.         CCAnimate* action = CCAnimate::create(animation);   
  3.         //创建精灵。 
  4.         CCSprite* pSprite = CCSprite::create(); 
  5.         //设置精灵位置。 
  6.         pSprite->setPosition(ccp(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y)); 

//第五步(1.5)

  1. //让演员演示这个动画。  
  2. pSprite->runAction(action);   

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值