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




  • 相关阅读:
    Jexus部署Asp.Net Core项目
    Docker 学习
    mysql 调优 (转)
    ZXHN H218N 超级管理员账号
    微擎遇到 请先更新或安装主模块后再安装插件 问题解决
    centos7 + php7
    PPTPD 服务搭建
    精心调制的Bash主题分享
    vue
    木马技术
  • 原文地址:https://www.cnblogs.com/ZhangJinkun/p/4530999.html
Copyright © 2011-2022 走看看