- 670 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 12:33:42 ID:keBEe7WT]
- Gameクラスの中で、publicなメンバとしてSpriteBatchを宣言し、
GameクラスのDrawメソッドの中の単一のBeginとEndの中で、すべての描画したいオブジェクトのRenderメソッドを呼び、 GameのSpriteBatchを使って描画しています このBeginはBegin( SpriteBlendMode.AlphaBlend, SpriteSortMode.BackToFront, SaveStateMode.SaveState ); という形で呼んでいるのですが、描画したいオブジェクトの中にSpriteBlendMode.Additiveで描画したいものがあります。 そのオブジェクトの中のRenderメソッドで、下記のようにしてみたのですが、うまくいきません。 this.game.spriteBatch.End(); this.game.spriteBatch.Begin( blendMode ); //blendModeで描画する this.game.spriteBatch.Draw( texture, position, bounds, Color.White, rad, origin, 1.0f, SpriteEffects.None, depth ); this.game.spriteBatch.End(); this.game.spriteBatch.Begin( SpriteBlendMode.AlphaBlend, SpriteSortMode.BackToFront, SaveStateMode.SaveState ); 上記コードを呼ばず、単にthis.game.spriteBatch.Drawを呼んで描画しているオブジェクトが 表示されなかったりします。 SpriteBlendMode.AlphaBlendとSpriteBlendMode.Additiveを使い分けるにはどういう風に実装するのが良いでしょうか。 GameクラスにSpriteBlendMode.Additive用のSpriteBatchと、SpriteBlendMode.AlphaBlend用のSpriteBatchを両方別々に持たせて 描画するオブジェクトの中で呼び分けようかなぁとか考えているんですが、あまりスマートじゃない気がします…。
|

|