0

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より大きくする必要があります」という引用符でアクセスが悪くなるたびに

また、私が持っていると確信している基本的な概念を見逃している場合は、それらを指摘してください!

ありがとう!

4

1 に答える 1

0

SpriteFramesはSpritesheetsと連携して動作します。スプライトシートを追加する

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

多くのツールを使用してスプライトシートを作成できます。Texturepackerを使用しています。代替はZwoptexである必要があります。Texturepackerを使用してSpritesheetを作成すると、Spritesheetと.plistファイルが取得されます。上記のパラメータは、.plistファイルの名前です。この.plistファイルにはキーがあります。

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

このメソッドは、以前に追加されたSpritesheetからのCCSpriteFrame*を提供します。スプライトシートを追加したことがない場合は、発生したエラーがスローされます。

于 2012-06-24T19:03:38.910 に答える