Estoy usando SpriteBatch para dibujar un Texture2D en la pantalla y me preguntaba cómo podría manipular la opacidad de las imágenes. Alguien sabe la mejor manera de lograr esto?¿Cómo hacer un Texture2D 50% transparente? XNA
Respuesta
Suponiendo que está utilizando XNA 4.0 con alfa premultiplicado. En su spritebatch.draw multiplique el color por un flotador, 0.5f para una transparencia del 50%, y dibuje como lo haría normalmente. Si no está utilizando alfa premultiplicado, le sugiero que lo haga por motivos de rendimiento y es más intuitivo después de que se acostumbre.
Ejemplo:
_spriteBatch.Draw(texture, location, Color.White * 0.5f);
Editar: También asegúrese de configurar su estado de fusión a BlendState.AlphaBlend, o en otro estado que apoya mezcla alfa y no es NonPremultiplied.
Ejemplo:
_spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend);
sólo tiene que utilizar el color como new Color(RGBA);
donde:
- R es Red
- G es verde
- B es azul
- A es Alfa
Por ejemplo:
new Color(100, 100, 100, 100);
Esto puede no haber sido intencional pero me acabas de mostrar que el parámetro 'Color' no es enum lol! No tenía idea de que pudieras crear tus propios colores así. – TheGateKeeper
- 1. Reducir un Texture2D en XNA
- 2. ¿Cómo cambiar el tamaño y guardar un Texture2D en XNA?
- 3. Cambiar el tamaño y cargar una texture2d en XNA
- 4. XNA Fundido alfa para hacer parte de una textura transparente
- 5. ¿Cómo hacer un degradado transparente?
- 6. cómo hacer SlidingDrawer transparente
- 7. cacao: Cómo hacer un fondo transparente webView?
- 8. Generando un Texture2D a partir de varios Texture2Ds
- 9. Creando un polígono 2D en XNA
- 10. Hacer un píxel transparente en Matlab
- 11. ¿Cómo hacer un rectángulo en Gráficos en un color transparente?
- 12. XNA Girar textura 2D
- 13. ¿Existe una alternativa rápida a la creación de un Texture2D a partir de un objeto Bitmap en XNA?
- 14. ¿Cómo hago un fondo semi transparente?
- 15. ¿Cómo hacer que NSTableView sea transparente?
- 16. ¿Cómo hacer SurfaceView con fondo transparente?
- 17. Cómo hacer una ventana transparente en Linux
- 18. ¿Cómo hacer que JFrame sea transparente?
- 19. ¿Cómo hacer que el fondo de un JCheckBox sea transparente?
- 20. ¿Cómo hacer que un diálogo personalizado sea transparente?
- 21. WPF: Cómo hacer que un fondo de botón sea transparente
- 22. Cómo hacer una superficie con un fondo transparente en pygame
- 23. Iphone ¿Cómo hacer que el fondo del contexto sea transparente?
- 24. Evitar hacer una UIButton transparente/transparente cuando su desactivación
- 25. ¿Cómo creo un UITextField transparente?
- 26. Rectángulo de dibujo con XNA
- 27. 2D XNA ratón del juego, haga clic en
- 28. texture vs texture2D en GLSL
- 29. ¿Cómo puedo hacer una GUI para mi juego C# XNA?
- 30. Transparente Fondo
Usando el operador de multiplicación en 'Color' modula los cuatro canales (RGBA) y sólo proporciona el cambio esperado en la transparencia cuando se utiliza modos de fusión premultiplicados (por ejemplo:' AlphaBlend'). Para que otros estados de mezcla funcionen como se espera (p. Ej .: 'Additive' y' NonPremultiplied'), debe establecer el valor alfa del color directamente (dejando solo RGB). –