2011-06-12 5 views
2

나는 XNA 학습을 시작하고 원활하게 진행됩니다. 그러나 나는 3.1에서 4.0을 배우면서 발에서 스스로를 쏘고 있는지 궁금합니다.학습 XNA ​​3.1 대 XNA 4.0

나는 무엇이 새로운 것을 알고 있 : http://msdn.microsoft.com/en-us/library/bb417503.aspx, 그게 대부분 전화, 인터페이스 및 비디오 기능 - 내가별로 관심이없는 것 같다 - 나는 핵심 3D 물건을 더하고있다.

달라 붙는 지점은 다음과 같습니다. 저는 Visual Studio 2008 전문가가 이미 있으며 4.0에서 게임 프로그래밍에 약간의 차이가 있다면 VS 2010을 얻고 싶지 않습니다.

전 세계로 이동 했습니까? 내가 3.1에서 배운 내용이 중복 될 것입니까?

또한 라이브러리 코드의 차이가 있지만, 주요하지 않은 그들 중 많은 사람들이 여기에서 볼 수있다 : http://www.nelxon.com/blog/xna-3-1-to-xna-4-0-cheatsheet/를, 예를 들어 내가 Riemers 혀를 비교 파악했다이 하나

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); 
    } 
+0

닫기를 투표 한 사람들에게 -이 프로그래밍 관련 질문은 어디에서 할 수 있습니까? – markmnl

+0

GameDev Stack Exchange (http://gamedev.stackexchange.com/)에서 질문이 있으면 여기에 문의하십시오. – Empyrean

+0

Visual Studio를 사용하는 XNA는 프로그래머가 일반적으로 사용하는 소프트웨어 도구입니다. 자주 묻는 질문에 따르면 이것은 소프트웨어 개발과 관련이 있습니다. – Empyrean

답변

0

첫회 게시. 비슷한 질문이 여기에있는 게임 개발 스택 체인지에 게시되었습니다. (당신이 대부분 말한 내용을 되풀이합니다.) https://gamedev.stackexchange.com/questions/7553/difference-between-xna-3-1-and-4-0 제 경험상 우리 팀은 3.1에서 개발하기 시작했고 4.0 계획. 4.0은 로우 엔드이고 "winphone7"과 "Hidef"에 대한 모바일 GPU를 기반으로하는 기본적으로 두 가지 사양 중 하나 인 "Reach"중 하나에 당신을 강제로 넣는 것처럼 보입니다. 기본적으로 Xbox를 의미하며 어떤 컴퓨터에서도 시작할 수 없습니다. 적어도 DirectX 10 이상 카드는 없었습니다. 저는 3.1보다 4.0의 조직을 좋아하지만, WinPhone7 및 Xbox 3.1과 마찬가지로 PC 전용 기능을 제공합니다. XNA를 배우기 때문에이 옵션을 아직 사용할 수 있지만, 향후 3.1에서 4.0으로 포팅 할 필요가 있다고 생각된다면 다소 어려울 수 있습니다. 나는 우리 게임을위한 오디오를 개발하고 있었고 4.0의 많은 변화가 매우 유용하다는 것을 알았지 만 우리 팀은 많은 그래픽을 변환하는 몇 가지 딸꾹질을 가지고있었습니다. 희망이 도움이! 건배!

+0

나에게도 일어났습니다. 3.1에 해제하고 모든 변경 끝냈다 4.0 – Oofpez

3

예. 세상은 계속 나아갔습니다. XNA 3.1은 이미 중복되었습니다.

주요 아키텍처, API 및 4.0 용 후드 변경 사항이 있습니다. 변경 사항은 특히 렌더링과 관련하여 중요합니다. VS2008 Professional 및 XNA 3.1보다 VS2010 Express 및 XNA 4.0을 사용하는 것이 좋습니다.

+0

이것은 정답입니다, XNA3.1은 1 년 넘게 바뀌 었습니다, 당신은 Xbox, WP7 및 모든 컨테스트에서 (더 이상) 사용할 수 없습니다. . 렌더링 API는 훨씬 간단 해졌으며, 수입업자들에게는 많은 버그가 있습니다.VS Express 및 그 이후의 VS Pro에서 XNA 4를 사용했고, 프로파일 러와 같은 작은 것들이있어서 선택해야한다면 VS Pro를 계속 사용하게됩니다. 나는 항상 XNA3 + VS Pro를 통해 XNA4 + VS Express를 선택합니다. –