2011-09-25 58 views
0

CCAnimate需要CCSpriteFrames,但它们需要使用texture2d。CCAnimate与精灵文件名?

是不是可以通过提供我的文件名简单地使用CCAnimate?像anim1.png,anim2.png,anim3.png ...

回答

1

不是直接。

如果您在版本0.99。*,你可以将文件加载到UIImage S,然后建立initWithImage:功能CCTexture2D S,然后创建CCSpriteFrame秒。

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

但是,这个API背后的重点是,您可以将动画的所有帧放入一个图像文件,将其作为纹理加载,然后使用rect属性/参数分割出各个帧。这也应该提高性能,因为图形芯片只需加载一个纹理,然后执行廉价的剪裁操作而不是加载多个纹理。

编辑:Cocos2D自版本1.1起具有direct CCSpriteFrame loading的功能。

+0

但是,如果我的所有图像所在的图像文件都很简单,该怎么办?如此巨大,它会给记忆警告? – Voldemort

+0

然后,当然,你可以把它分成多个文件 - 比如说前一个25帧的文件,下一个25帧的另一个文件,等等。然而,每帧一个文件可能是过度杀毒。 – RavuAlHemio

+0

这就是我不明白的:分裂?我的意思是,我需要为这个东西创建一个CCSpriteBatchNode,然后添加我的CCSprite作为它的子对象,对吧?如果是这种情况,如果CCSpriteBatchNode只接受两个文件,我该如何使用两个不同的文件? – Voldemort