SpriteBatchを使用して画面にTexture2Dを描画していますが、画像の不透明度をどのように操作できるのでしょうか。誰かがこれを達成するための最良の方法を知っていますか?
アルファが事前に乗算されたXNA4.0を使用していると仮定します。 spritebatch.drawで、色にフロートを掛け、0.5fで透明度を50%にし、通常どおりに描画します。事前に乗算されたアルファを使用していない場合は、パフォーマンス上の理由と、慣れた後のより直感的な理由から使用することをお勧めします。
例:
_spriteBatch.Draw(texture, location, Color.White * 0.5f);
編集:また、ブレンド状態をBlendState.AlphaBlend、またはアルファをサポートし、NonPremultipliedではない別のブレンド状態に設定していることを確認してください。
例:
_spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend);
色をnew Color(RGBA);
として使用するだけです。ここで:
例えば:
new Color(100, 100, 100, 100);