2010-08-15 342 views
1

我有一个精灵,我动画使用CCAnimate。动画由4张spritesheets组成,我需要时进行交换。当交换Spritesheet时,除了闪烁之外,一切工作都很好。Cocos2d动画闪烁

关于该怎么做的任何想法?

回答

1

我发现了一个解决方案,如果有人感兴趣。

在CCAnimation对象之间切换时,它似乎是一种滞后,这使得帧在一瞬间变为空白。解决方法是在抛弃旧的动画之后立即手动将精灵设置为即将到来的动画的第一帧。

更多的信息在这里: http://www.cocos2d-iphone.org/forum/topic/8729

+0

我还没有遇到过,但我期待。谢谢。 – Justin 2010-08-16 15:44:17

0

你使用预装CCTextureCache的addImage的spritesheets?如果不是这样,每当您第一次切换到spritesheet时,您都会发现延迟。另外,除非你的Spritesheet太大以至于你不能将所有的动画放到1024x1024的纹理中,否则你应该把所有的精灵放到一张表中,而不是像4个256x256的spritesheet那样使用多个。你很难从中得到任何好处,最坏的情况是你失去了spritesheets的好处,因为只要你从两张不同的spritesheet中渲染出来,它将会是两次平局,而不是一次。纹理图集不是用于组织您的动画,而是尽可能地将所有图形保留为尽可能少的纹理。

+0

我的动画太大,无法放入一个1024x1024,这就是为什么我使用4个spritesheets。 我一直在使用CCSpriteFrameCache的addSpriteFramesWithFile在我的介绍场景中加载我的spritesheets,我看到它使用addImage,所以我猜这是相同的。 我想知道addImageSync以及如何使用它与addSpriteFramesWithFile,任何想法?我目前正在承受长时间的加载时间...... – 2010-08-30 16:21:58