我有以下代码来设置我的spritesheets和批处理节点:
CGSize screenSize = [[CCDirector sharedDirector] winSize];
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"soldier-test.plist"];
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"soldier-running.plist"];
batchNode = [CCSpriteBatchNode batchNodeWithFile:@"soldier-test.png"];
self.player = [Player spriteWithSpriteFrameName:@"shooting s0000.bmp"];
[batchNode addChild:self.player];
[player setPosition:ccp(screenSize.width/2, screenSize.height/2)];
[self addChild:batchNode];
但是,当我尝试使用播放器(CCSprite的子类)使用第二个spritesheet中的帧执行操作时,我会收到与纹理文件相关的断言错误。我是否需要将这些工作表合并为一个,或者是否有办法跨多个spritesheets跨越一个CCSprite?
答案 0 :(得分:2)
SpriteBatchNode只能拥有全部使用相同纹理的子项。如果你想将它添加到你的batchNode,你的播放器需要使用纹理soldier-test.png。
使用TextureAtlas,您可以将多个不同的纹理放入一个大图像中。