Je commence à apprendre XNA et ça se passe bien. Cependant, je me demande si je me tire dans le pied en apprenant 3.1 pas 4.0? Je suis au courant de ce qui est nouveau: http://msdn.microsoft.com/en-us/library/bb417503.aspx, et cela semble surtout être le téléphone, les interfaces et les fonctionnalités vidéo - ce qui ne m'intéresse pas - je fais plus de choses en 3D de base.Apprendre XNA 3.1 Vs XNA 4.0
Le point de friction est: J'ai déjà Visual Studio 2008 professionnel et je ne veux pas avoir VS 2010 s'il y a peu de différence dans la programmation du jeu en 4.0.
Le monde a-t-il évolué? Est-ce que ce que j'apprends en 3.1 va devenir redondant?
Il existe également des différences de code dans les bibliothèques, mais ils ne sont pas majeurs, beaucoup d'entre eux peut être vu ici: http://www.nelxon.com/blog/xna-3-1-to-xna-4-0-cheatsheet/, par exemple celui que je devais comprendre par rapport à 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);
}
Pour ceux qui votent pour la fermeture - où puis-je poser cette question de programmation? – markmnl
Essayez de poser votre question sur GameDev Stack Exchange (http://gamedev.stackexchange.com/) si elle est fermée ici. – Empyrean
XNA avec Visual Studio sont des outils logiciels couramment utilisés par les programmeurs. Selon la faq, cela se rapporte au développement de logiciels, pas sûr qu'il aurait dû être fermé. – Empyrean