Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XNA 4.0应用程序在命中某个方法时突然关闭,但不会引发任何异常_C#_Windows Phone 7_Graphics_Xna - Fatal编程技术网

C# XNA 4.0应用程序在命中某个方法时突然关闭,但不会引发任何异常

C# XNA 4.0应用程序在命中某个方法时突然关闭,但不会引发任何异常,c#,windows-phone-7,graphics,xna,C#,Windows Phone 7,Graphics,Xna,正如标题所说,我有一个XNA应用程序,当它点击某个应用程序时会突然关闭,但没有显示任何错误,因此我甚至不知道如何开始调试它。代码非常简单——我只是在玩XNA并试图渲染一个简单的三角形——所以我无法想象它为什么会停止。正在运行的代码是 VertexPositionColor[] vertices; public Terrain() { vertices = new VertexPositionColor[3]; vertices[0].Po

正如标题所说,我有一个XNA应用程序,当它点击某个应用程序时会突然关闭,但没有显示任何错误,因此我甚至不知道如何开始调试它。代码非常简单——我只是在玩XNA并试图渲染一个简单的三角形——所以我无法想象它为什么会停止。正在运行的代码是

    VertexPositionColor[] vertices;

    public Terrain()
    {
        vertices = new VertexPositionColor[3];
        vertices[0].Position = new Vector3(-0.5f, -0.5f, 0f);
        vertices[0].Color = Color.Red;
        vertices[1].Position = new Vector3(0, 0.5f, 0f);
        vertices[1].Color = Color.Green;
        vertices[2].Position = new Vector3(0.5f, -0.5f, 0f);
        vertices[2].Color = Color.Yellow;
    }

    public void Draw(GameTime gameTime)
    {
        ScreenManager.GraphicsDevice.DrawUserPrimitives<VertexPositionColor>(
            PrimitiveType.TriangleList,
            vertices,
            0,
            1,
            VertexPositionColor.VertexDeclaration);
    }
VertexPositionColor[]顶点;
公共地形()
{
顶点=新的顶点曝光颜色[3];
顶点[0]。位置=新向量3(-0.5f,-0.5f,0f);
顶点[0]。颜色=颜色。红色;
顶点[1]。位置=新向量3(0,0.5f,0f);
顶点[1]。颜色=颜色。绿色;
顶点[2]。位置=新向量3(0.5f,-0.5f,0f);
顶点[2]。颜色=颜色。黄色;
}
公开作废抽签(游戏时间游戏时间)
{
ScreenManager.GraphicsDevice.DrawUserPrimitives(
PrimitiveType.TriangleList,
顶点,
0,
1.
VertexExpositionColor.VertexDeclaration);
}

是Draw()函数把它搞砸了。当我删除DrawUserPrimitives行时,它运行良好(尽管没有显示任何内容…

我将假设“ScreenManager”是一个继承自“DrawableGameComponent”的类,并且您正在从那里访问图形设备?确保在游戏类的构造函数中的某个地方初始化GraphicsDeviceManager(此)


我认为您的屏幕管理器静态捕获的“图形设备”可能没有正确初始化

顺便说一句,所使用的screenmanager来自此示例--并且仅用于让GraphicsDeviceIt进入应用程序?苹果拥有什么?在输出窗口中查找第一次机会异常。使用Debug+异常捕获它们。@我确实在构造函数中设置了GraphicsDeviceManager,但我没有明确地将其与GraphicsDevice链接。我正在访问的GraphicsDevice已从游戏类传递给ScreenManager-我是否需要执行某些操作以将GraphicsDevice与GraphicsDeviceManager关联?@Jordan:在
ScreenManager.GraphicsDevice.DrawUserPrimitives
行上设置断点。当应用程序到达该断点时,请检查
图形设备是否实例化,而不是
null
。我没有收到任何错误,这就是为什么我如此困惑的原因。它只是停下来,踢回到家里的电话screen@Layoric:我想你是想把它发给乔丹,而不是我。@Jordan,你能把你游戏中的代码放到protected override void Initialize()上吗?只是为了再次检查一下正在做什么。以及如何将graphicsdevice解析到ScreenManager类?另外,在上面的代码中,您是将其用作属性还是从ScreenManager对GraphicsDevice的静态调用?还要确认的是,这是Windows、Xbox还是WP7应用程序?抱歉,尼尔。