2009-07-26 11 views
1

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

スプライトを追加するコードを削除すると、フレームレートが〜30fpsから40fpsに変化することに気付きました。より安価な静的な背景を表示する他の方法ですか?私はバックグラウンドスプライトをまったく動かすつもりはない。

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

cocos2dは圧縮テクスチャ(pvrtc)の使用を許可していますか?もしそうなら、そのルートに行く。メモリ帯域幅は大きな問題であり、通常ボトルネックです。 – Till

答えて

1

ない簡単な質問を、Cocos2D性能に関するすべての質問のように:今のコードに

。大きな画像は常にレンダリングにCPUを要します。パフォーマンスを許容できるように減らすことしかできません(安定した30 fpsが良い結果です)

元の開発者からはpretty good advicesが与えられています。

私自身の経験から、ソリッドイメージの背景を使用するよりも小さなスプライトで背景色を塗りつぶすことを好みます。繰り返す要素は、異なるスプライトでuse single textureにする必要があります。

テクスチャの品質を16ビットに減らすこともできます。

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

バックグラウンド自体を追加するなどの詳細情報を提供すると、トピックについてより具体的になります。

+0

私はあなたがそこで他の多くの人にとって役に立つことができる最適化の良い例を挙げたと思います。そして、私の質問に対する答えはノーだと思います。ほとんどリソースを消費しない背景としてビットマップを定義する魔法の方法はありません。 –

0

すべてのスプライトをAtlasSpriteに変換することをお勧めします。あなたはバックグラウンドファイルを一度読み込むAtlasSpriteManagerを持っています。スプライト自体が必要なときは、画像をクリップするだけです。 AtlasSpriteは従来のSpriteのものより一般的に高速です。

関連する問題