1

私は iphone に cocos2d を使用し、私のゲームでは静的な背景画像としてスプライトを使用しています。

スプライトを追加するコードを削除すると、フレームレートが 30 fps から 40 fps 以上になることに気付きました。安価な静的背景を表示する他の方法はありますか? 背景のスプライトをまったく動かしていません。

今すぐコーディングするには:

background = [Sprite spriteWithFile:@"t1_5.jpg"];
[self addChild:background z:0];
background.position = ccp(240, 160);
4

2 に答える 2

1

Cocos2D のパフォーマンスに関するすべての質問と同様に、簡単な質問ではありません。大きな画像のレンダリングには常に CPU が必要です。パフォーマンスを許容できるようにするためにのみ減らすことができます (安定した 30 fps が良い結果です)。

元の開発者からのかなり良いアドバイスがあります。

私自身の経験から、無地の画像の背景を使用するよりも、小さなスプライトで塗りつぶされた背景を使用することを好みます。繰り返し要素も、異なるスプライトを持つ単一のテクスチャを使用する必要があります。

テクスチャの品質を 16 ビットに下げることも役に立ちます。

[Texture2D setDefaultAlphaPixelFormat:kTexture2DPixelFormat_RGBA4444]; // add this line at the very beginning

背景自体を添付するなどの詳細情報を提供していただければ、トピックをより具体的にすることができます。

于 2009-07-26T19:11:28.197 に答える
0

すべてのスプライトを AtlasSprite に変換することをお勧めします。そうすれば、バックグラウンド ファイルを 1 回ロードする AtlasSpriteManager を使用できます。スプライト自体が必要な場合は、画像をクリッピングするだけです。AtlasSprite は、従来の Sprite よりも一般的に高速です。

于 2009-09-23T12:10:22.190 に答える