对C ++来说还是一个新手,所以很容易,但我在这里遇到一些问题。
我正在运行for循环来添加精灵帧但是我在将objective-c转换为C ++时遇到了一些麻烦
Objective-c
for (int i = 0; i < 24; i++) {
[initalTurnAnimationFrames addObject:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName: [NSString stringWithFormat:@"%@%d.png", tilt, i]]];
}
C ++
for (int i = 0; i < 24; i++) {
stringstream tempString;
tempString <<i<<".png";
frameStore->addObject(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(tempString.str().c_str()));
}
但是每次我使用“引用计数应该大于0”的引用来获取错误的访问权
请帮助,如果我错过了基本概念,我相信我可以请你指出来!
谢谢!
答案 0 :(得分:0)
SpriteFrames与Spritesheets一起使用。使用
添加spritesheetCCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile(<#const char *pszPlist#>)
您可以使用许多工具创建spritesheet。我使用Texturepacker。另一种选择应该是Zwoptex。 当您使用Texturepacker创建Spritesheet时,您将获得Spritesheet和.plist文件。以上参数是.plist文件的名称。在这个.plist文件中是键。
CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(key)
该方法为您提供了之前添加的Spritesheet的CCSpriteFrame *。如果您从未添加Spritesheet,它会抛出您刚刚遇到的错误。