08/03/02 22:44:28 keBEe7WT
>>689
ありがとうございます。
半透明ではなく透明度ゼロのスプライトの表示ですね。
奥から、地形、アイテム、キャラ、弾丸(←こいつにAdditiveが混ざってる)、エフェクト、メニュー(←こいつが半透明)
という表示をしたくて、spriteBatch.Drawの最後の引数の値で管理してます。
AlphaBlend用のSpriteBatch(Aとする)とAdditive用のSpriteBatch(Bとする)をそれぞれ持っておくというのは合ってて、
下記のように呼べばOKでしょうか?
ただ、この場合、弾もメニューも他のものもDrawableGameComponentを継承した、○○Managerというのを作って、
そのDrawメソッドの中でそれぞれのオブジェクトのDrawメソッドを呼んでいるのですが、DrawableGameComponentにしちゃうと
まとめてGameから呼ばれちゃうので、弾ManagerとメニューManagerはDrawableGameComponentにせずに別管理になるということでしょうか。
//地形、アイテム、キャラ描画
SpriteBatch_A.Begin(Blend);
SpriteBatch_A.Draw( 地形とかアイテムとかキャラとか );
SpriteBatch_A.End();
//弾
SpriteBatch_A.Begin(Blend);
SpriteBatch_B.Begin(Additive);
if ( 弾.blendmode == AlphaBlend ) {
SpriteBatch_A.Draw( 弾 );
} else {
SpriteBatch_B.Draw( 弾 );
}
SpriteBatch_A.End();
SpriteBatch_B.End();
//メニュー
SpriteBatch_A.Begin(Blend);
SpriteBatch_A.Draw( メニュー );
SpriteBatch_A.End();