我们应该使用哪些API将spritesheets和sprite添加到cocos2d游戏中?

时间:2013-01-22 02:51:34

标签: cocos2d-iphone sprite-sheet

在创建cocos2d iOS游戏时,有几个选项可以添加spritesheets - CCTextureCache :: addImageAsync,CCSpriteFrameCache :: addSpriteFramesWithFile等 - 使用这些不同方法添加spritesheet之间的区别是什么?

同样,要加载精灵,我们可以调用CCSprite :: spriteWithSpriteFrameName或CCSprite :: spriteWithFile或CCSpriteBatchNode :: batchNodeWithTexture等。使用这些技术有什么区别?

由于

阿南德

1 个答案:

答案 0 :(得分:2)

加载精灵帧,这也会加载纹理:

[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"file.plist"];

使用精灵帧:

CCSprite* sprite = [CCSprite spriteWithSpriteFrameName:@"frame.png"];

将精灵添加到批处理节点:

CCSpriteBatchNode* batchNode = [CCSpriteBatchNode batchNodeWithTexture:sprite.texture];
[batchNode addChild:sprite];

如果您使用精灵的相同图像文件,batchNodeWithFile也会起作用。如果用spriteframe初始化精灵,它将是纹理图集图像(即" file.png")。

仅当您想要在另一个线程上加载纹理时才需要添加addImageAsync,通常是为加载屏幕设置动画。您之后仍然需要添加精灵帧。

CCSprite spriteWithFile从单个图像文件创建一个sprite。这些也可以批处理,但使用带有精灵帧的纹理图集会更好。