【问题标题】:Cocos2d Animation FlickeringCocos2d 动画闪烁
【发布时间】:2011-03-30 03:19:42
【问题描述】:

我有一个使用 CCAnimate 制作动画的精灵。动画由 4 个精灵表组成,我在需要时交换它们。一切都很好,除了在交换精灵表时有些闪烁。

有什么想法吗?

【问题讨论】:

    标签: iphone cocos2d-iphone animation


    【解决方案1】:

    我找到了一个解决方案,以防万一有人感兴趣。

    在 CCAnimation 对象之间切换时似乎存在延迟,这会使帧在一瞬间变为空白。解决方案是在丢弃旧动画后立即手动将精灵设置为即将到来的动画的第一帧。

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

    【讨论】:

    • 我还没有遇到这个,但我希望会。谢谢。
    【解决方案2】:

    您是否使用 CCTextureCache 的 addImage 预加载精灵表?如果没有,当您第一次切换到 spritesheet 时,您会注意到延迟。

    另外,除非您的 spritesheet 太大以至于您无法将所有动画放入 1024x1024 纹理中,否则您应该简单地将所有 sprite 放入一张表中,而不是使用多个,例如四个 256x256 spritesheet。这样做几乎没有任何好处,最坏的情况是你失去了精灵表的好处,因为一旦你从两个不同的精灵表渲染,它将是两个绘制调用而不是一个。纹理图集不是用于组织动画,而是将尽可能多的所有图形保存到尽可能少的纹理中。

    【讨论】:

    • 我的动画太大而无法放入 1024x1024,这就是我使用 4 个 spritesheets 的原因。我一直在使用 CCSpriteFrameCache 的 addSpriteFramesWithFile 在我的介绍场景中加载我的精灵表,我看到它使用 addImage 所以我猜这是一样的。我想知道 addImageSync 以及如何将它与 addSpriteFramesWithFile 一起使用,有什么想法吗?我目前的加载时间很长...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    • 2012-03-12
    • 2011-08-23
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    • 2014-07-22
    相关资源
    最近更新 更多