CCSpriteBatchNode的使用



使用CCSpriteBatchNode時,所使用的貼圖必須是同一張圖片,意思是

CCSpriteBatchNode* batchNode = CCSpriteBatchNode::create("t.png");

裏面的“t.png"要和

batchNode->addChild(picture)

裏的picture是同一張圖片,同一張圖片意味着batchNode->getTexture()->getName() == picture->getTexture()->getName()

CCSpriteBatchNode的使用時有兩種方式:
1、按照http://www.cocos2dev.com/?p=331中的方式, 即完全用同一張圖片
2、如果要顯示不同的圖片呢?可以用TexturePacker將不同的圖片製作成一張圖集,然後

CCSpriteFrameCache *cache = CCSpriteFrameCache::sharedSpriteFrameCache();
cache->addSpriteFramesWithFile("t.plist","t.png");

CCSpriteBatchNode* batchNode = CCSpriteBatchNode::create("t.png");

addChild(batchNode);
CCSprite* close = CCSprite::spriteWithSpriteFrameName("CloseNormal.png");

batchNode->addChild(close);

這樣,就batchNode->getTexture()->getName() == close->getTexture()->getName()了


這個時候如果這樣寫:CCTexture*  texture = CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("CloseNormal.png")->getTexture();
這個texture其實是t.png的texture.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章