全
我希望使用以下代码嵌入多个spriteFrame缓存。
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"abc.plist"];
// Create a sprite sheet with the Happy Bear images
CCSpriteBatchNode *spriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"abc.png"];
[self addChild:spriteSheet];问题是,在第一张动画完成后,我想通过另一个ccsprite fram缓存来做另一个动画,并添加另一个雪碧表,但是当我添加另一个雪碧表时,它会给我sigerbat错误。
我如何做多个动画后,一个动画覆盖,然后第二个动画将开始,记住有4个CCSpriteFrameCache文件(即。4卷宗)
发布于 2011-06-07 14:15:25
添加到CCSprite中的所有CCSpriteBatchNode必须使用相同的纹理。所以你想要完成的事情是不可能的,因为你试图从4种不同的纹理中添加图像。如果您检查控制台(在Debug builds中),您将发现一条消息,说明了这方面的内容。
解决方案:对每个纹理使用一个CCSpriteBatchNode (通过CCSpriteFrameCache plist加载)。您必须编写更多的代码,但这是唯一的方法,除了根本不使用CCSpriteBatchNode。
您可能需要做一个性能测试,以检查您是否真的、真的需要CCSpriteBatchNode。例如,如果您在任何时候都在屏幕上显示来自同一纹理的一个sprite,则不需要CCSpriteBatchNode。只有当屏幕上有多个(多个)精灵,并且都使用相同的纹理时,这才能提高性能。
https://stackoverflow.com/questions/6263055
复制相似问题