【发布时间】:2011-03-30 03:19:42
【问题描述】:
我有一个使用 CCAnimate 制作动画的精灵。动画由 4 个精灵表组成,我在需要时交换它们。一切都很好,除了在交换精灵表时有些闪烁。
有什么想法吗?
【问题讨论】:
标签: iphone cocos2d-iphone animation
我有一个使用 CCAnimate 制作动画的精灵。动画由 4 个精灵表组成,我在需要时交换它们。一切都很好,除了在交换精灵表时有些闪烁。
有什么想法吗?
【问题讨论】:
标签: iphone cocos2d-iphone animation
我找到了一个解决方案,以防万一有人感兴趣。
在 CCAnimation 对象之间切换时似乎存在延迟,这会使帧在一瞬间变为空白。解决方案是在丢弃旧动画后立即手动将精灵设置为即将到来的动画的第一帧。
【讨论】:
您是否使用 CCTextureCache 的 addImage 预加载精灵表?如果没有,当您第一次切换到 spritesheet 时,您会注意到延迟。
另外,除非您的 spritesheet 太大以至于您无法将所有动画放入 1024x1024 纹理中,否则您应该简单地将所有 sprite 放入一张表中,而不是使用多个,例如四个 256x256 spritesheet。这样做几乎没有任何好处,最坏的情况是你失去了精灵表的好处,因为一旦你从两个不同的精灵表渲染,它将是两个绘制调用而不是一个。纹理图集不是用于组织动画,而是将尽可能多的所有图形保存到尽可能少的纹理中。
【讨论】: