2011-07-09 20 views

cevap

32

XNA 4.0'ı premultiplied alpha ile kullandığınızı varsayarsak. Spritebatch.draw'inizde, rengi% 50'lik bir saydamlık için bir float, 0.5f ile çarpın ve normalde yaptığınız gibi çizin. Premultiplied alpha kullanmıyorsanız, performans gerekçelerinden ve alıştıkça daha sezgisel olmanızı öneririm.

Örnek:

_spriteBatch.Draw(texture, location, Color.White * 0.5f); 

Düzenleme: Ayrıca BlendState.AlphaBlend veya alfa destekler ve NonPremultiplied olmayan başka harman durumuna harman durumunu ayarlamak emin olun.

Örnek:

_spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend); 
+7

'Color' bütün kanalları (RGBA) modüle ve çarpılmış harmanlama modlarını kullanırken sadece şeffaflık beklenen değişiklik sağlar üzerindeki çarpma operatörü kullanarak (örn:' AlphaBlend'). Diğer karışım durumlarının beklendiği gibi çalışabilmesi için (örn: 'Additive' ve' NonPremultiplied'), doğrudan rengin alfa değerini ayarlamalısınız (yalnızca RGB'yi bırakarak). –

6

sadece new Color(RGBA); olarak renk kullanmak:

  • R
  • G Kırmızı Yeşil
  • B
  • bir
Alfa Blue olduğu Örneğin

:

new Color(100, 100, 100, 100); 
+2

Bu kasıtlı olmayabilir, ancak bana sadece 'Renk' parametresinin enum lol olmadığını gösterdin! Kendi renklerini böyle oluşturabileceğinin hiçbir fikrim yoktu. – TheGateKeeper

İlgili konular