我在 Cocos2d 中有一个代表我角色的类。
我已经导出了 spritesheet + .plist 文件。
角色有多个动画。
这些框架简称为“Character_1.png”。
最多四个。这是基本的行走动画。
在许多 Sprite 动画教程中,我找到了这个示例代码,它循环遍历 Sprite 帧缓存并将其添加到数组中,以便您可以对其进行动画处理:
for(int i = 1; i <= 4; ++i) {
[animationFrames addObject:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:[NSString stringWithFormat:@"Character_%d.png", i]]];
}
但是,因为我的大多数 Sprite 都会像这样进行动画处理,所以我想将其委托(delegate)给一个父类(super class)。
我想把它命名为类似
spriteWithAnimations:(NSArray *)animationNames
然后我会查看它们,就像上面的示例一样。
因此,作为数组中的参数,我会得到一个字符串 @"Character_%d"
,我会创建一个 while 循环并检查文件是否存在,同时,我' d 将其添加到数组中。
唯一的问题是,我无法检查框架 "Character_05.png" 是否存在,因为 CCSpriteFrameCache
没有这样的方法。
这个问题通常是如何解决的?
最佳答案
如果 CCSpriteFrameCache 对于给定的帧名称返回 nil,则您知道它不存在。不优雅,但有效。
关于iphone - 使用 Cocos2d 自动 Sprite 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14665322/