Objective c 有精灵文件名的动画?

Objective c 有精灵文件名的动画?,objective-c,cocos2d-iphone,Objective C,Cocos2d Iphone,CCAnimate需要CCSpriteFrame,而它们需要纹理2D 难道不能通过提供我的文件名来简单地使用CCAnimate吗?像anim1.png、anim2.png、anim3.png…不是直接的 如果您使用的是0.99.*版,则可以将文件加载到UIImages中,然后使用initWithImage:函数创建ccstructure2ds,然后创建CCSpriteFrames 如果您使用的是1.0.0版或更高版本,则可以使用CCTextureCachesingleton从文件中加载纹理,然后

CCAnimate需要CCSpriteFrame,而它们需要纹理2D

难道不能通过提供我的文件名来简单地使用CCAnimate吗?像anim1.png、anim2.png、anim3.png…

不是直接的

如果您使用的是0.99.*版,则可以将文件加载到
UIImage
s中,然后使用
initWithImage:
函数创建
ccstructure2d
s,然后创建
CCSpriteFrame
s

如果您使用的是1.0.0版或更高版本,则可以使用
CCTextureCache
singleton从文件中加载纹理,然后创建
CCSpriteFrame
s

但是,此API背后的全部要点是,您可以将动画的所有帧放置到一个图像文件中,将其作为纹理加载,然后使用
rect
属性/参数雕刻出各个帧。这也将提高性能,因为图形芯片只需加载一个纹理,然后执行廉价的剪切操作,而不是加载多个纹理


编辑:Cocos2D从1.1版起就有了一个功能。

但是如果我所有图像所在的图像文件都是海量的,该怎么办?如此巨大以至于它会发出内存警告?那么,当然,你可以将它分割成多个文件——比如说,一个文件用于前25帧,另一个文件用于下25帧,等等。但是,每帧一个文件可能是多余的。这就是我不太明白的:分割?我的意思是,我需要为这个东西创建一个CCSpriteBatchNode,然后添加我的CCSprite作为它的子节点,对吗?如果是这样的话,如果CCSpriteBatchNode只接受一个文件,我怎么能使用两个不同的文件呢?我不这么认为--
CCSpriteFrame
应该自动处理这个问题。
CCTexture2D*->CCSpriteFrame*->CCAnimation->CCAnimate
的层次结构应该足够了。在0.99.x中,我一直在使用:phaseAnimation=[CCAnimation animation with name:@“pearl”delay:(1/18.0f)];[相位激活保留];[phaseAnimation addFrameWithFilename:@“phase001.png”];我收到通知/警告,这些函数已弃用,但仍能工作…[phaseAnimation addFrameWithFilename:@“Phase002.png”];