//采用缓存CCSpriteBatchNode缓存添加9000个精灵
void GameOverLayer::createSpriteUseCache()
{
CCSize size = CCDirector::sharedDirector()->getVisibleSize();
CCSpriteBatchNode* batchNode = CCSpriteBatchNode::create("Player.png");
batchNode->setPosition(CCPointZero);
addChild(batchNode,1);//指定加到第一层
for(int i = 0; i<9000; i++)
{
CCSprite* sp = CCSprite::createWithTexture(batchNode->getTexture());
sp->setPosition(ccp(CCRANDOM_0_1()*size.width,CCRANDOM_0_1()*size.height));
batchNode->addChild(sp);
}
}
//如下图所示,采用精灵表添加9000个精灵总共渲染3次(帧率为20.6)
2、不采用精灵表时间加载9000个精灵
void GameOverLayer::createSpriteNotUseCache()
{
CCSize size = CCDirector::sharedDirector()->getVisibleSize();
for(int i = 0; i<9000; i++)
{
CCSprite* sp = CCSprite::create("Player.png");
sp->setPosition(ccp(CCRANDOM_0_1()*size.width,CCRANDOM_0_1()*size.height));
this->addChild(sp);
}
}
//如下图所示,不采用精灵表需要渲染9002次,帧率为(17.6)
//由此可见采取精灵表的方式可以大大减少渲染次数,但是帧率提高不明显(问题不明,希望能有高手指出)