• 批处理精灵节点


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

    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中帧循环次数也就是刷新次数。




  • 相关阅读:
    Memcached:高性能的分布式内存缓存服务器
    MySQL数据库Query的优化
    MySQL数据库的锁定机制及优化
    系统架构及实现对性能的影响(一)
    Mysql数据库的基本结构和存储引擎简介
    Spring事务管理的回滚
    穷举算法实例
    在写完全二叉树的构建及遍历
    Inotify
    Rsync扩展
  • 原文地址:https://www.cnblogs.com/ZhangJinkun/p/4530999.html
Copyright © 2020-2023  润新知