【发布时间】:2012-09-09 00:52:42
【问题描述】:
从透明图像转换为不透明图像时,动画图像出现问题。
如果我将图像从不透明图像设置为透明图像,则效果很好。 但是,如果我将图像从透明图像动画到不透明图像,它就不起作用了。(这是问题)
示例代码:
从不透明到透明的动画:(一切正常,功能齐全)
//Define variables (in construct):
float AlphaTime = 3500f; // total animate time (at milliseconds)
float AlphaTimeSubtract = 3500f; // at milliseconds
Color color = Color.White;
//Update method:
AlphaTimeSubtract -= (float)(gameTime.ElapsedGameTime.TotalMilliseconds); // abate number of elapsed time (for milliseconds)
color *= MathHelper.Clamp(AlphaTimeSubtract / AlphaTime, 0, 1);
//Draw merhod:
spriteBatch.Draw(texture, position, color);
从透明到不透明的动画:(这是问题,它不起作用)!!!
结果是不可见的精灵!(这是错误的)
正确的结果应该是:动画精灵从透明到不透明。
//Define variables (in construct):
float AlphaTime = 3500f; // total animate time (at milliseconds)
float AlphaTimeSubtract = 3500f; // at milliseconds
Color color = Color.White;
//Update method:
AlphaTimeSubtract -= (float)(gameTime.ElapsedGameTime.TotalMilliseconds); // abate number of elapsed time (for milliseconds)
color *= MathHelper.Clamp(Math.Abs(AlphaTimeSubtract - AlphaTime ) / AlphaTime , 0, 1);
//Draw merhod:
spriteBatch.Draw(texture, position, color);
Math.Abs():返回绝对值
我做错了什么?
【问题讨论】:
-
颜色乘数 = 从 0 到 1 的浮点数。0 = 透明,1 = 不透明