我刚开始学习XNA,它进展顺利。然而,我想知道我是否是通过学习3.1而不是4.0射中了自己的脚?
我知道什么是新的:http://msdn.microsoft.com/en-us/library/bb417503.aspx,而这似乎主要是电话,接口和视频功能--我不太感兴趣--我更多的是做核心的3D内容。
关键是:我已经拥有VisualStudio2008VISUALSTUDIO专业人员了,如果在4.0.中的游戏编程没有什么不同的话,我不想获得VS 2010。
,这个世界已经改变了吗?我在3.1中学到的东西会变得多余吗?
库中也有代码差异,但它们不是主要的,在这里可以看到许多代码差异:http://www.nelxon.com/blog/xna-3-1-to-xna-4-0-cheatsheet/,例如,我不得不找出与Riemers相比的代码差异:
XNA4.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);
}发布于 2011-06-12 06:35:48
是的。世界已经发生了变化。XNA3.1已经是多余的了.
有主要的架构,API和引擎盖下的变化为4.0。这些变化是重大的,特别是在渲染方面。您最好使用VS2010 Express和XNA4.0,而不是使用VS2008 Professional和XNA3.1。
发布于 2011-06-12 02:16:54
第一次发帖。在游戏开发stackexchange中有一个类似的问题,这个问题可以在这里找到(并重申您大多数时候说过的话) https://gamedev.stackexchange.com/questions/7553/difference-between-xna-3-1-and-4-0,就我的经验而言,我们的团队在3.1开始开发,最后移植到4.0,大约在项目进行一半的时候。4.0似乎迫使你进入两个规格之一的“达到”,这是低端,并有许多限制基于移动GPU的winPhone7和"Hidef“,这基本上意味着Xbox,不会启动我们的任何计算机,至少没有一个DirectX 10+卡。比起3.1,我更喜欢4.0的组织,但是它更适合于winPhone7和Xbox,其中As3.1有一些仅限于PC的特性。由于您正在学习XNA,所以该选项仍然可以使用,但是如果您觉得需要从3.1移植到4.0,这可能会有些困难。我正在为我们的游戏开发音频,并发现在4.0中的许多变化非常有用,但是我们的团队确实有一些小问题,转换了很多图形。希望这能帮上忙!干杯!
https://stackoverflow.com/questions/6319599
复制相似问题