我正在创建一个游戏,它将多次实例化某种类型的精灵。这个精灵将有一个简单的循环动画,因此,我假设我需要使用CCSpriteFrameCache
并CCSPriteBatchNode
缓存用于驱动动画过程的相关精灵图像。
我一直在阅读 Raywenderlich.com 上经常被引用的How To Use Animations and Sprite Sheets in Cocos2D,我基本了解这个过程。
我的问题是他的场景文件的代码中包含了整个动画序列。我无法解释如何将相同的代码放在CCSprite
我创建的孩子、类(或类似的类)中,以及如何在我的游戏场景中使用这个独立的精灵。
换句话说,我的愿望是有一个CCSprite
可以在场景实现中实例化的子类。一些参数被传递到孩子的构造函数中CCSprite
,当精灵被添加到游戏场景中时,精灵的动画会自动发生,并且不受任何场景代码的影响。
我怎样才能做到这一点?
(未)澄清点或为什么我感到困惑
在 Ray 教程的第 2 步中,他指示添加CCSpriteBatchNode
用于他的动画精灵的子self
对象(即游戏场景)。如果我CCSpriteBatchNode
在CCSprite
子类实现中定义了 a,我是否需要添加CCSpriteBatchNode
到我的父母场景?我应该如何(正确地)做到这一点?
另外,如果是一个单例类,添加构造函数会不会给我CCSpriteFrameCache
带来任何麻烦,或者我应该只调用一次,比如说,在我的应用程序的初始化中?[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"my_sprite.plist"];
CCSprite
一般来说,我只是感到困惑。我怎样才能创建一个独立的动画精灵,我可以添加(多次)到一个场景中,我的场景不必担心连接动画序列,也不会让小的 iOS 处理器陷入困境?
我真的不在乎我如何解决这个问题。也许我做了一些不正确的宏伟假设。我愿意采取不同的方式来解决这个问题,只要最终结果如上所述。
谢谢!