2012-01-14 51 views
0

这就是我如何使用纹理形成sprite-sheet创建sprite。但是,我以后如何更改sprite纹理?使用sprite-sheet中的图像更改sprite纹理

我试过使用setTexture但我无法让我工作。

[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"gameSpriteSheet.plist"];   
CCSpriteBatchNode *spriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"gameSpriteSheet.png"]; 
[self addChild:spriteSheet]; 

// Add hangman graphic sprite to Scene 
playerSprite = [CCSprite spriteWithSpriteFrameName:@"playerX"]; 
playerSprite.position = ccp(580, 400); 
[self addChild:playerSprite]; 

回答

3

你不行。

CCSpriteBatchNode使用单个纹理。所有添加到CCSpriteBatchNode的精灵都必须使用与CCSpriteBatchNode相同的纹理。

我相信你面临的问题有不同的解决方案,从不同的角度给它一些想法。例如,您可以通过简单地创建一个新的精灵来获得相同的效果。

如果您只想更改精灵的CCSpriteFrame,请使用setDisplayedFrame

+1

setDisplayedFrame正是我需要的..谢谢! – 2012-01-14 16:55:35

+0

如何为他想要的新纹理图集创建一个新的sprite批处理节点,并在以后删除旧纹理图集? – RollRoll 2014-03-10 03:26:46