批处理精灵节点

批处理精灵节点<?xml version="1.0" encoding="UTF-8"?>
批处理精灵节点用于精灵数目很多的时候,使用批处理的方式可以降低渲染次数,提高效率,当然,当精灵数目较小的时候是没有必要使用批处理的

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 ;
}

结果:

261654422433266.png

如果不使用批处理:

261654516659643.png


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




转载于:https://www.cnblogs.com/ZhangJinkun/p/4530999.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值