1

私は現在、iPad 用の cocos2d ゲームを 1 つ開発しています。そのゲームにはたくさんのアニメーションがあります。以前は、スプライト シートを作成し、プロジェクトにアニメーションを追加するために zwoptex を使用していました。

私のゲームには 10 レベルがあり、各レベルが完了すると 1 つのアニメーションが再生されます。アニメーションはレベルごとに異なり、アニメーションの画像サイズはデバイスの画面サイズと同じです。そのため、画像を直接ロードする代わりに、スプライトシートファイルを作成していません。私の問題は、アニメーションの再生に時間がかかりすぎることです。

どうすれば修正できますか? 誰か私を導いてください。全画面サイズの画像 (1024x768) を plist にロードすることは可能ですか? 合計 10 レベルの各レベルにはアニメーション用の 20 フレームがあるため、スプライトシートをロードするには 10X20 = 200 の画像が必要です。

このコードをアニメーションに使用しています

 CCAnimation *animation = [CCAnimation animation];
for(int i=1;i<=20;i++)
 {
  [animation addFrameWithFile:[NSString stringWithFormat:@"Level%dAni%d.png",level,i];
 }
 animation.delayPerUnit = 0.3f;
 animation.restoreOriginalFrame = YES;
 id action = [CCAnimate actionWithAnimation:animation];

私の質問は、スプライト シートで全画面アニメーションを読み込むことは可能ですか? とアニメーションの読み込み時間が異なり、時間がかかりすぎて修正する方法はありますか?

私を助けてください..

4

3 に答える 3

1

計算して、1024x768 ピクセルで 200 枚の写真を保存するために必要なメモリ量を計算してください。iSomething デバイスにはメモリが多すぎます。

パフォーマンスの問題がある場合 (つまり、これをデバイスで実行している場合)、画像の読み込み速度を向上させるためにできることが 2 つあります。

  • 画像を .pvr.gz に変換します (これには TexturePacker をお勧めします)。.png よりもはるかに高速に読み込まれます。
  • RGBA4444 ピクセル フォーマットを使用し (これも TexturePacker で行うことができます)、画像をロードする直前に cocos でテクスチャ フォーマットを設定します。画像が小さくなり、メモリ使用量が大幅に減少します。

コード内でアニメーションを実行する場所

    [CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA4444];
    // load your images and do your anim
    ...
    // at the completion of the anim
    [CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA8888];
于 2013-08-12T11:25:32.870 に答える
1

NSThread を使用して、このスレッドにアニメーションをロードします。

NSThread *thread = [[[NSThread alloc] initWithTarget:self selector:@selector(preloadFireWorkAnimation) object:nil] autorelease];
    [thread start];

-(void)preloadFireWorkAnimation
 {
      // load your animation here;
 }
于 2013-08-12T10:21:26.220 に答える
1

Cocos2D を使えば、スプライトシートの画像を簡単にアニメーション化できます。

Cocos2D を使用して次の例を試してください

http://www.smashious.com/cocos2d-sprite-sheet-tutorial-animating-a-flying-bird/309/ http://www.raywenderlich.com/1271/how-to-use-animations-and- cocos2d のスプライト シート

Cocos2D を使用せずに次の例を試してください

http://www.dalmob.org/2010/12/07/ios-sprite-animations-with-notifications/

http://developer.glitch.com/blog/2011/11/10/avatar-animations-in-ios/

于 2013-08-12T06:50:54.707 に答える