C ++使用转换NSStringwithformat:到其他Cocos2dx

时间:2012-06-20 20:03:56

标签: iphone c++ objective-c ios cocos2d-iphone

对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”的引用来获取错误的访问权

请帮助,如果我错过了基本概念,我相信我可以请你指出来!

谢谢!

1 个答案:

答案 0 :(得分:0)

SpriteFrames与Spritesheets一起使用。使用

添加spritesheet
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile(<#const char *pszPlist#>)

您可以使用许多工具创建spritesheet。我使用Texturepacker。另一种选择应该是Zwoptex。 当您使用Texturepacker创建Spritesheet时,您将获得Spritesheet和.plist文件。以上参数是.plist文件的名称。在这个.plist文件中是键。

CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(key)

该方法为您提供了之前添加的Spritesheet的CCSpriteFrame *。如果您从未添加Spritesheet,它会抛出您刚刚遇到的错误。