如果同一张图片的精灵要画在60个地方要生成60个精灵?比如一大堆的钱堆叠效果?
CCTextureCache* texCache = CCTextureCache::sharedTextureCache();
CCTexture2D* texture = texCache->textureForKey("bgLight\BgLight.png");
CCSpriteBatchNode* spriteBatch = CCSpriteBatchNode::create(texture);
addChild(spriteBatch);
for (int i = 0; i < 100; ++i)
{
CCSprite* pBgLight = CCSprite::create((CCSpriteFrame*)pNameAry->objectAtIndex(0));
pBgLight->setPosition(ccp(100+rand()%(int)(size.width)-200, 50+rand()%(int)(size.height)-100));
spriteBatch->addChild(pBgLight);
pBgLight->runAction((CCAction *)TestRepeatForever->copy());
}
- 本帖最后由 myplhch 于 2012-7-30 22:35 编辑 *
感谢楼上回复,我看了一下您的这种方式也一样是创建多个精灵,可能是用gdi写游戏习惯了,是不是这个游戏引擎不管是情况都要创建CCSprite对象?
看你的精灵会不会动,如果是静止的,可以用CCRenderTexture合成成一个CCSprite
CCTextureCache* texCache = CCTextureCache::sharedTextureCache();
CCTexture2D* texture = texCache->textureForKey("bgLight\BgLight.png");
CCSpriteBatchNode* spriteBatch = CCSpriteBatchNode::create(texture);
addChild(spriteBatch);
for (int i = 0; i < 100; ++i)
{
CCSprite* pBgLight = CCSprite::create((CCSpriteFrame*)pNameAry->objectAtIndex(0));
pBgLight->setPosition(ccp(100+rand()%(int)(size.width)-200, 50+rand()%(int)(size.height)-100));
spriteBatch->addChild(pBgLight);
pBgLight->runAction((CCAction *)TestRepeatForever->copy());
}