管理动画的SKTextures

时间:2017-01-09 15:45:51

标签: sprite-kit swift3 game-engine

我想知道管理纹理的最佳方法。在我目前的项目中,它们都非常小,所以它并不重要,但我想知道是否有最佳实践。我也在使用实体/组件系统(它是一个实验项目)。

所以我有一个动画组件,用于存储与该实体相关的所有动画。我创建了一个这样的结构:

struct AnimationDefinition { 
   let animation: [SKTexture]
   let timePerFrame: CGFloat
}

我将动画定义存储在我的组件的dictionnary属性中,以便稍后通过名称回忆它们。那部分效果很好。但就目前而言,我只有有限数量的实体,但我计划在开发过程中添加更多实体,因此我创建动画的方式可能会变得混乱,因为我在实体中创建了所有纹理& #39; s init()。因此,我非常确定如果我在另一个使用大纹理和更多动画的项目中重用该组件,每次创建实体时它都会减慢所有内容。

所以我考虑构建一个将在开始时创建纹理的TextureManager(如果它变得更大,我可以让它在每个级别的开头重新生成,只使用将要使用的纹理)并随意提供数组。这是一个好方法吗?

我应该立即创建动画的SKAction并存储它而不是纹理数组吗?

感谢您的意见?