C # XNA Как изменить альфа для всей Texture2D? - PullRequest
1 голос
/ 29 ноября 2011

Возможно ли навсегда изменить альфа-значение текстуры, не переводя ее в другую поверхность?

Ответы [ 2 ]

4 голосов
/ 29 ноября 2011

Вы можете использовать Texture2D.GetData<Color>() и Texture2D.SetData<Color>() и перезаписать альфа-значение.

Редактировать:

Этот метод может быть немного сложным при использовании текстур с предварительно умноженным альфа.

0 голосов
/ 30 ноября 2011

Если вам нужно изменить прозрачность в игре, просто умножьте Color.White на сумму, которую вы хотите, чтобы она была прозрачной.Это почти не требует дополнительных затрат, так как значения цвета пикселей уже умножаются на то, какой цвет вы передаете в функцию рисования.Это просто 1 дополнительный флоп за цикл.

spriteBatch.Draw(texture, position, sourceRect, Color.White * 0.5f, .......)
...