Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.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
学习XNA 3.1与XNA 4.0_Xna_Xna 4.0_Xna 3.0 - Fatal编程技术网

学习XNA 3.1与XNA 4.0

学习XNA 3.1与XNA 4.0,xna,xna-4.0,xna-3.0,Xna,Xna 4.0,Xna 3.0,我开始学习XNA,而且进展顺利。然而,我想知道学习3.1而不是4.0是不是在打击自己的脚 我意识到了什么是新的:,这似乎主要是手机、界面和视频功能——我对此不太感兴趣——我更多的是做核心3D的东西 症结在于:我已经有了Visual Studio 2008 professional,如果4.0中的游戏编程没有什么不同,我不想得到VS 2010。 世界是否在前进?我在3.1中学习的内容是否多余? 库中也存在代码差异,但它们不是主要的,其中许多差异可以在这里看到:,例如,我必须找出与Riemers T

我开始学习XNA,而且进展顺利。然而,我想知道学习3.1而不是4.0是不是在打击自己的脚

我意识到了什么是新的:,这似乎主要是手机、界面和视频功能——我对此不太感兴趣——我更多的是做核心3D的东西

症结在于:我已经有了Visual Studio 2008 professional,如果4.0中的游戏编程没有什么不同,我不想得到VS 2010。

世界是否在前进?我在3.1中学习的内容是否多余?

库中也存在代码差异,但它们不是主要的,其中许多差异可以在这里看到:,例如,我必须找出与Riemers Tut相比的这个差异:

XNA 4.0

     protected override void Draw(GameTime gameTime)
     {
         device.Clear(Color.DarkSlateBlue);

         RasterizerState rs = new RasterizerState();
         rs.CullMode = CullMode.None;
         device.RasterizerState = rs;

         effect.CurrentTechnique = effect.Techniques["ColoredNoShading"];
         effect.Parameters["xView"].SetValue(viewMatrix);
         effect.Parameters["xProjection"].SetValue(projectionMatrix);
         effect.Parameters["xWorld"].SetValue(Matrix.Identity);
         foreach (EffectPass pass in effect.CurrentTechnique.Passes)
         {
             pass.Apply();

             device.DrawUserPrimitives(PrimitiveType.TriangleList, vertices, 0, 1, VertexPositionColor.VertexDeclaration);
         }

         base.Draw(gameTime);
     }
XNA 3.1

    protected override void Draw(GameTime gameTime)
    {
        device.Clear(Color.DarkSlateBlue);

        device.VertexDeclaration = new VertexDeclaration(device, VertexPositionColor.VertexElements);
        device.RenderState.CullMode = CullMode.None; // TODO only for testing!
        device.RenderState.FillMode = FillMode.Solid;

        effect.CurrentTechnique = effect.Techniques["ColoredNoShading"];
        effect.Parameters["xView"].SetValue(viewMatrix);
        effect.Parameters["xProjection"].SetValue(projectionMatrix);
        effect.Parameters["xWorld"].SetValue(Matrix.Identity);

        effect.Begin();
        foreach (EffectPass pass in effect.CurrentTechnique.Passes)
        {
            pass.Begin();
            device.DrawUserIndexedPrimitives<VertexPositionColor>(PrimitiveType.TriangleList, vertices, 0, 5, indices, 0, indices.Length / 3);
            pass.End();
        }
        effect.End();

        base.Draw(gameTime);
    }
protected override void Draw(游戏时间游戏时间)
{
设备。清晰(颜色:深蓝色);
device.VertexDeclaration=新的VertexDeclaration(device,vertexositioncolor.VertexElements);
device.RenderState.CullMode=CullMode.None;//TODO仅用于测试!
device.RenderState.FillMode=FillMode.Solid;
effect.currentTechnical=effect.technologies[“彩色无阴影”];
效果.参数[“xView”].设定值(viewMatrix);
效果参数[“xProjection”].SetValue(projectionMatrix);
效应.参数[“xWorld”].设定值(矩阵.恒等式);
Begin()的效果;
foreach(EffectPass-in-effect.currentTechnology.passs)
{
pass.Begin();
device.DrawUserIndexedPrimitions(PrimitiveType.TriangelList,顶点,0,5,索引,0,索引.长度/3);
pass.End();
}
效果。结束();
基础。抽签(游戏时间);
}

首次发布。在这里可以找到游戏开发stackexchange中发布了一个类似的问题(并在很大程度上重申了您所说的)
根据我的经验,我们的团队从3.1开始开发,到项目进行到一半时才移植到4.0。4.0似乎迫使您进入两个规格“Reach”中的一个,这是低端,并且基于winPhone7的移动GPU和“Hidef”有很多限制,这基本上意味着Xbox,并且不会在我们至少没有DirectX 10+卡的任何计算机上启动。与3.1相比,我更喜欢4.0的组织结构,但它更适合winPhone7和Xbox,其中as 3.1具有一些仅适用于PC的功能。由于您正在学习XNA,该选项仍然可以使用,但是如果您觉得将来需要从3.1移植到4.0,可能会有点困难。我正在为我们的游戏开发音频,发现4.0中的许多更改非常有用,但是我们的团队在转换很多图形时遇到了一些问题。希望这有帮助!干杯

是的。世界在前进。XNA 3.1已经冗余。


对4.0进行了重大的架构、API和幕后更改。这些变化非常显著,尤其是在渲染方面。您最好使用VS2010 Express和XNA 4.0,而不是VS2008 Professional和XNA 3.1。

对于投票结束的人,我还能在哪里问这个编程问题?如果这里关闭,请尝试在GameDev Stack Exchange()上问您的问题。XNA和Visual Studio是程序员常用的软件工具。根据常见问题解答,这与软件开发有关,不确定它是否应该关闭。我在gamedev上重新发布后自己标记了它:这是正确的答案,XNA3.1已经被替换了一年多了,你不能(再)在Xbox、WP7和任何比赛中使用它。渲染API变得简单多了,有很多错误。我曾经在VS Express和更高版本的VS Pro下使用过XNA 4,如果我不得不选择的话,只有一些小东西(比如分析器)会让我继续使用VS Pro。我总是选择XNA4+VS Express而不是XNA3.1+VS Pro。我也是这样,我从3.1开始,最后把一切都改成了4.0