使用CCSpriteBatchNode实现动画效果-创新互联

使用CCSpriteBatchNode实现动画效果

为北碚等地区用户提供了全套网页设计制作服务,及北碚网站建设行业解决方案。主营业务为成都网站制作、成都网站建设、外贸营销网站建设、北碚网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

//每当屏幕绘制一个纹理的时候,就要经过三个工作:准备渲染、渲染图形和渲染后的清除。这些工作产生了渲染一个纹理所固有的开销,所以要让硬件知道需要渲染的这一组精灵或动作帧,使用的是同一个纹理。这样,图形硬件就会为这组精灵只进行一次准备、渲染、和清除工作了。使用CCSpriteBatchNode就可以做到这一点。

//CCSpriteBatchNode的工作原理如下:

//1、创建一个CCSpriteBatchNode对象,通过传递一个包含所有精灵图片的纹理图册的名字作为参数,并把它加入到当前场景中。

//2、接下来,从纹理图册中创建的任何精灵,应该把它当作CCSpriteBatchNode的一个孩子加进去。只要精灵包含在纹理图册中,那么就没问题,否则会出错。

//3、CCSpriteBatchNode可以智能地遍历它所有孩子结点,并通过一次渲染工作来渲染这些孩子,而不是每个精灵都进行一次渲染,这样渲染速度就会更快了

我们在boolHelloWorld::init()添加如下代码:

if ( !CCLayer::init() )
    {
        return false;
    }
                       
                       
                       
    CCAnimation* animation = CCAnimation::create();
                       
                       
    CCSpriteBatchNode* node = CCSpriteBatchNode::create("grossini.png");
    this->addChild(node);
                       
    CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("grossini.plist");
                       
    for (int i = 1; i < 15; i++)
    {
        CCString* str = CCString::createWithFormat("grossini_dance_%02d.png",i);
        const char* ch = str->getCString();
        CCSpriteFrameCache* cache = CCSpriteFrameCache::sharedSpriteFrameCache();
        CCSpriteFrame* frame = cache->spriteFrameByName(ch);
        animation->addSpriteFrame(frame);
    }
                       
    animation->setDelayPerUnit(0.3f);
    CCAnimate* animate = CCAnimate::create(animation);
    CCSpriteFrameCache* cache = CCSpriteFrameCache::sharedSpriteFrameCache();
                       
    CCSprite* sprite = CCSprite::createWithSpriteFrame(cache->spriteFrameByName("grossini_dance_01.png"));
    sprite->setPosition(ccp(100, 100));
                       
    node->addChild(sprite);
                       
    sprite->runAction(CCRepeatForever::create(animate));

代码下载例子:Hi,推荐文件给你 "动画例子4.zip" http://vdisk.weibo.com/s/Hw4G7

http://pan.baidu.com/share/link?shareid=260459325&uk=3189484501

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文标题:使用CCSpriteBatchNode实现动画效果-创新互联
文章地址:http://pwwzsj.com/article/copdhh.html