我本质上是在每一帧上绘制一个纹理,每次我绘制它的时候,我都想减少alpha,这样它最终会达到0,这样就不会留下任何伪像。
基本方程式是:
result = (source * sourceBlendFactor) blendFunction (destination * destinationBlendFactor)因为我的目的地是Color.Transparent,所以我想我需要:
result = 0 = (source * sourceBlendFactor); 我绞尽脑汁研究了不同的BlendState组件,但我似乎无法理解这一点……
有没有办法让alpha线性递减?
发布于 2012-03-30 10:37:18
你当然可以。定义一个保持当前alpha状态在1和0之间的值。每一帧递减该值,直到该值达到0。在draw方法中,可以确定色调颜色的Alpha值。
byte alpha = 255 - (currentAlphaState * 255);
spriteBatch.Draw(...., new Color( 255, 255, 255, alpha) ...); // assuming white is your default tint colorhttps://stackoverflow.com/questions/9935811
复制相似问题