0

我有一个类代表我在 Cocos2d 中的角色。
我已经导出了 spritesheet + .plist 文件。

角色有多个动画。

这些框架简称为"Character_1.png"
最多四个。这是基本的行走动画。

在许多精灵动画教程中,我找到了这个示例代码,它循环通过精灵帧缓存并将其添加到数组中,以便您可以对其进行动画处理:

for(int i = 1; i <= 4; ++i) {
    [animationFrames addObject:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:[NSString stringWithFormat:@"Character_%d.png", i]]];
}

然而,因为我的大多数精灵都会像这样被动画化,我想把它委托给一个超类。

我想把它称为

spriteWithAnimations:(NSArray *)animationNames

然后我会查看它们,就像上面的示例一样。

因此,作为数组中的参数,我会得到一个 string @"Character_%d",我会做一个 while 循环并检查文件是否存在,而这样的话,我会将它添加到数组中。

唯一的问题是,我无法检查框架“Character_05.png”是否存在,因为CCSpriteFrameCache没有这样的方法。

这通常是如何解决的?

4

1 回答 1

1

如果 CCSpriteFrameCache 为给定的帧名称返回 nil,您就知道它不存在。不优雅,但它有效。

于 2013-02-02T20:29:35.087 回答