如果同一张图片的精灵要画在60个地方要生成60个精灵?

如果同一张图片的精灵要画在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());
		}