Nov 032011
 

Cocos2Dの透明度の設定と透明度アニメーション。パーティクルエミッターの透明度やブレンド。CCLayerには透明度(opacity)はないので、指定するとエラーとなる。CCSpriteの透明度を変える。

スプライトの透明度

 CCSprite *car=[CCSprite spriteWithFile:@"car.png"];
car.opacity=0; 

透明度のアニメーション

 [car runAction:[CCFadeIn actionWithDuration:1.0f]];//表示をする
[car runAction:[CCFadeOut actionWithDuration:1.0f]];//非表示にする 

パーティクルの透明度

エミッターそのものには透明度(opacity)のプロパティがない。パーティクルのスタートカラーとエンドカラーの(RGBA)の最右(A)項目を変更する。

ccColor4Fとは浮動小数点数型のメンバからなる構造体。r、g、b、aのメンバで構成。値のレンジは0から1で、1がフルカラー。すべて1で白。

CCParticleSystem *emitter = [CCParticleGalaxy node];
emitter.startColor = startColor;
ccColor4F startColorVar = {0.5f, 0.5f, 0.5f, 1.0f};
emitter.startColorVar = startColorVar;
ccColor4F endColor = {0.1f, 0.1f, 0.1f, 0.2f};
emitter.endColor = endColor;
ccColor4F endColorVar = {0.1f, 0.1f, 0.1f, 0.2f}; 

OpenGLの合成まとめ

上下z方向に重なり合ったグラフィックはそれぞれRGBAの色で構成されている場合合成が出来る。 重なったそれぞれのRGBAをどう混色するのかを次のblendFinc関数で選択。

emitter.blendFunc=(ccBlendFunc){GL_SRC_ALPHA,GL_ONE};

詳しいサイト

ブレンディング::計算式の設定

コメント

個のコメント

Powered by Facebook Comments

 Posted by at 18:01

Sorry, the comment form is closed at this time.