//採用緩存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)
//由此可見採取精靈表的方式可以大大減少渲染次數,但是幀率提高不明顯(問題不明,希望能有高手指出)