zoukankan      html  css  js  c++  java
  • 批处理精灵节点

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

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




  • 相关阅读:
    Linux中的文件特殊权限
    服务器管理
    程序图表统计知识
    EasyUI 添加tab页(iframe方式)
    打造自己的reset.css
    CI的知识点
    easyui资源
    eval解析JSON中的注意点
    如何在一个frame中调用另一个frame中的javascript函数
    Egret 摇一摇功能
  • 原文地址:https://www.cnblogs.com/ZhangJinkun/p/4530999.html
Copyright © 2011-2022 走看看