【发布时间】:2015-08-02 05:26:33
【问题描述】:
我需要一个淡入淡出效果来在我的屏幕之间进行过渡。我在网上读到 XNA 3 的 alpha 混合旧方法已弃用,应该使用 XNA 4 的预乘 alpha。所以我正在使用 Monogame,我假设代码是相同的,但你能解释更多关于这个预乘 alpha 的信息吗?还有一个与我自己的代码兼容的代码示例会很棒!这是其中的一部分:
// Variables
private Texture2D image;
private Vector2 imagePosition;
private Color startColour;
private Color endColour;
private float alpha;
// Constructor
public myClass()
{
startColour = new Color(0.0f, 0.0f, 0.0f, 0.0f);
endColour = new Color(255.0f, 255.0f, 255.0f, 255.0f);
alpha = 0.0f;
}
// Update method
public void Update(GameTime gameTime)
{
// ??????
}
// Draw method
public void Draw(SpriteBatch spriteBatch)
{
spriteBatch.Begin();
spriteBatch.Draw(image, imagePos, startColour * alpha); // ???
spriteBatch.End();
}
我相信大部分代码都在那里,但我仍然需要更新 alpha,将其从 0 更改为 1,或者这就是你从白色淡出的方式?我想从白色褪色到不透明。那么你是怎么做到的呢?我的Update() 方法中应该有什么代码,我应该如何更改我当前的代码?
【问题讨论】: