J'utilise SpriteBatch pour dessiner un Texture2D sur l'écran et je me demandais comment je pouvais manipuler l'opacité des images? Quelqu'un sait le meilleur moyen d'accomplir cela?Comment faire un Texture2D 50% transparent? XNA
Répondre
En supposant que vous utilisez XNA 4.0 avec alpha précultiplié. Dans votre spritebatch.draw, multipliez la couleur par un float, 0.5f par 50% de transparence, et dessinez comme vous le feriez normalement. Si vous n'utilisez pas l'alpha prémultiplié, je vous suggère de le faire pour des raisons de performance et c'est plus intuitif après vous y être habitué.
Exemple:
_spriteBatch.Draw(texture, location, Color.White * 0.5f);
Edit: Assurez-vous également que vous définissez votre état de mélange à BlendState.AlphaBlend, ou d'un autre état de mélange qui prend en charge l'alpha et n'est pas NonPremultiplied.
Exemple:
_spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend);
Il suffit d'utiliser la couleur comme new Color(RGBA);
où:
- R est rouge
- G est vert
- B est bleu
- A est Alpha
Par exemple:
new Color(100, 100, 100, 100);
Cela n'a peut-être pas été intentionnel mais vous venez de me montrer que le paramètre 'Color' n'est pas enum lol! Je n'avais aucune idée que tu pouvais créer tes propres couleurs comme ça. – TheGateKeeper
- 1. XNA Rendu à Texture2D
- 2. C# XNA Comment définir un Texture2D sur une seule couleur?
- 3. Faire pivoter un Texture2D avec la méthode Draw dans XNA?
- 4. XNA Texture2D bug de recadrage
- 5. XNA: Polygone Source de Texture2D
- 6. xna wp7-essayant d'obtenir un texture2d de photoChooser
- 7. XNA tirage/peinture sur un Texture2D lors de l'exécution
- 8. Comment convertir une image emgu en un XNA Texture2D?
- 9. Redimensionner et charger une texture2d dans XNA
- 10. Sérialiser Texture2D par programmation dans XNA
- 11. Microsoft Xna Texture2D et la rotation
- 12. XNA nouveau Texture2D conserve les anciennes données
- 13. Attribution d'un Texture2D à un Texture2D existant
- 14. Rendre des parties de Texture2D transparentes dans XNA
- 15. Comment dessiner des caractères sur un Texture2D?
- 16. Comment faire un UIWebView transparent
- 17. Comment faire un dégradé transparent?
- 18. XNA: Utilisation de Content.Load avec une sous-classe de Texture2D
- 19. Rendre le tampon à l'objet texture2D dans XNA
- 20. XNA Le contenu ne décharge pas les ressources jetables (Texture2D)
- 21. comment faire SlidingDrawer transparent
- 22. Comment faire UIWindow transparent
- 23. Charger tous les Texture2D dans un dossier
- 24. Comment puis-je dessiner 50 du même sprite dans des emplacements aléatoires dans XNA?
- 25. Faire un fond d'onglet transparent?
- 26. Comment faire un UIBarButtonItem transparent et plat?
- 27. Comment faire un System.Drawing.Image semi-transparent?
- 28. comment faire un fond transparent avec freeimage?
- 29. iphone comment faire un fond d'uitableviewcellaccessorydisclosureindicator transparent?
- 30. Comment faire un panneau "souris-transparent"?
Utilisation de l'opérateur de multiplication sur 'Color' quatre canaux module (RGBA) et ne prévoit que le changement attendu dans la transparence lors de l'utilisation des modes de fusion prémultipliées (par exemple:' AlphaBlend'). Pour que les autres états de mélange fonctionnent comme prévu (par exemple: 'Additive' et' NonPremultiplied'), vous devez définir directement la valeur alpha de la couleur (en laissant RVB seul). –