2011-07-25 12 views
2

私はiPhoneのプログラミングには比較的新しいので、私はcocos2dを使い始めました。一度に複数のスプライトの不透明度を設定する方法があるかどうか疑問に思っていましたか? CCLayerでは不透明度が実装されておらず、不透明度はCCSpriteクラスの子に伝わっていないようです。Cocos2dの複数のスプライトの不透明度を変更する

カスタムccnodeのsetOpacityをオーバーライドして、反復処理と不透明度を個別に設定するよりも、これを行うより良い方法はありますか?または、描画をオーバーライドしてブレンドモードを手動で設定することもできますか?

ありがとうございます!

答えて

3

彼らはあなたがしたいスプライトがある場合は、シーン内のすべてのスプライトをループは、チェックすることができ、このような彼らの不透明度を設定します(あなたがスプライトを作成するときにOPACITY_SPRITE_TAGに自分のタグを設定すると仮定した場合)

for(CCSprite* sprite in [self children]) 
{ 
    if([sprite tag] == OPACITY_SPRITE_TAG) 
    { 
     [sprite setOpacity:NEW_OPACITY]; 
    } 
} 
+0

いいえ...これは悪い解決策です。複数のスプライトの不透明度を別々に変更します。したがって、それらが交差すると、互いに見えるでしょう。それはOPが本当に望んでいるものではありません。 – Coyote

0

変更したいスプライトの配列をインクリメントすることはできません。何かのように:

for(int i = 0; i < [myArray count]; i++){ 
CCSprite *mySprite = [myArray objectAtIndex:i]; 
[mySprite setOpacity:100]; 
} 
+0

うん、それは私が回避策としてどうなるのかだが、私はスプライトのトンで、多くの場合、不透明度を変更するつもりですので、シーングラフを活用するために、より効率的であるならば、私は思っていました構造体Cocos2dは不透明度を行うために使用します – Xzhsh

関連する問題