小编Mik*_*ing的帖子

XNA 3.1到4.0需要不断重绘或显示紫色屏幕

对于我游戏中的菜单,我将它们绘制到屏幕一次,然后只有在被认为是脏的时才重绘.每当用户执行应该导致重绘的操作时,都会通过布尔值设置为true来处理,然后绘制循环将在绘制菜单之前检查该值.这种逻辑在3.1中完美运行,但在4.0中菜单会闪烁(绘制1帧)然后显示紫色屏幕,直到再次绘制.

我在4.0中创建了一个非常简单的测试游戏来演示如下所示的问题.您会注意到屏幕看起来只是紫色.如果将行设置_isDirty删除为false,您将看到矢车菊蓝色背景.

public class Game1 : Microsoft.Xna.Framework.Game
{
    GraphicsDeviceManager graphics;
    bool _isDirty = true;

    public Game1()
    {
        graphics = new GraphicsDeviceManager(this);
    }
    protected override void Draw(GameTime gameTime)
    {
        if (_isDirty)
        {
            GraphicsDevice.Clear(Color.CornflowerBlue);
            _isDirty = false;
        }
        base.Draw(gameTime);
    }
}
Run Code Online (Sandbox Code Playgroud)

我如何从XNA 3.1获取行为?我见过几个人提到PreserveContents,但这似乎没有任何影响4.0,除非我错误地应用它.

xna xna-4.0

6
推荐指数
1
解决办法
2694
查看次数

标签 统计

xna ×1

xna-4.0 ×1