码迷,mamicode.com
首页 > 其他好文 > 详细

批处理精灵节点

时间:2015-05-26 18:36:55      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:

批处理精灵节点
批处理精灵节点用于精灵数目很多的时候,使用批处理的方式可以降低渲染次数,提高效率,当然,当精灵数目较小的时候是没有必要使用批处理的

bool T02Layers ::init()
{
       if (! CCLayer::init())
       {
               return false;
       }
        CCSize winSize = CCDirector::sharedDirector()->getWinSize();
        CCPoint ptCenter = ccp(winSize.width / 2, winSize.height / 2);

        /*
       CCSpriteBatchNode也是一个容器,但是它只能包容CCSprite对象,而且要求这些精灵来自同一个纹理
       */

       CCSpriteBatchNode* batch = CCSpriteBatchNode ::create("CloseNormal.png" );
       addChild(batch);
       _batch = batch;

        CCSprite* sprite = CCSprite::createWithTexture(batch->getTexture());
       batch->addChild(sprite);

       sprite->setPosition(ptCenter);

       setTouchEnabled( true);
       setTouchMode( kCCTouchesOneByOne);
       return true;
}


bool T02Layers ::ccTouchBegan(CCTouch* touch, CCEvent*)
{
        CCSize winSize = CCDirector::sharedDirector()->getWinSize();
        for ( int i = 0; i < 1000; i++)
        {
               CCSprite* sprite = CCSprite::createWithTexture(_batch->getTexture());
              _batch->addChild(sprite);
               //CCRANDOM_0_1 () 用于产生0到1之间的随机数字,是定义的宏
              sprite->setPosition( ccp( CCRANDOM_0_1()*winSize.width, CCRANDOM_0_1()* winSize.height));
        }
        return true;
}

结果:

技术分享

如果不使用批处理:

技术分享


三行数字,第一行表示精灵的渲染次数 第三行表示1s中帧循环次数也就是刷新次数。




批处理精灵节点

标签:

原文地址:http://www.cnblogs.com/ZhangJinkun/p/4530999.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!