0

给定一个CCSprite如何访问NSString精灵的文件名?例如,如果

CCSprite* sprite;

然后是一些方法或获取器来返回spriteNSString 文件名。

4

1 回答 1

0

没有办法做到这一点。CCSprite 与任何实例一样,一旦编译代码,就不会保留太多名称和人类可读的东西。

然而,在 Cocos2D 编程中,将 CCSprite 类子类化以添加一些附加属性(如敌人的点等)是很常见的。如果您创建自己的 SpriteClass,您可以添加一个 NSString 属性“名称”,您可以在创建时设置精灵。例如

CCSprite *sprite = [[CCSprite alloc] initWithTexture:someTexture name:@"sprite"];

为了使其健壮,您可能应该创建所有包含的 initMethods 的版本,并添加 name 参数,并在传入 nil 时引发异常。

尽管这接近于解决您的问题,但我仍然建议您不要这样做。它不是特别优雅,字符串检查容易出现打字错误等。如果我是你,我真的会尝试找到其他方法来识别你的精灵。

也许如果您告诉我们更多关于您想要实现的目标,我们可以找到更好的解决方案?

于 2013-11-10T18:32:37.640 回答