XNA for C#
DirectX 9 for C#
DirectX 9 for C++
DirectX 9 for VB
Forum
   
My XNA Book
      
       Go to section on this site

Additional info


Latest Forum posts

 Account settings
  Posted by: Anonymous
  When: 07/05/2014 at 09:48:39

 forced subtitle
  Posted by: Applefly
  When: 07/05/2014 at 06:00:48

 convert DVD into PMS
  Posted by: Applefly
  When: 07/05/2014 at 05:55:25

 DVD to Digital Copy easily
  Posted by: VIKIVannessa
  When: 05/05/2014 at 06:52:29

 DVD on Xbox 360/Xbox One Console
  Posted by: VIKIVannessa
  When: 05/05/2014 at 06:51:47

 Extract .Srt Subtitles
  Posted by: Applefly
  When: 04/05/2014 at 03:54:38

 Encode Movie collection
  Posted by: Applefly
  When: 04/05/2014 at 03:52:41

 Convert DVD to WMV
  Posted by: Applefly
  When: 29/04/2014 at 05:53:50

 rip DVDs into digital files
  Posted by: Applefly
  When: 29/04/2014 at 05:51:20

 iTunes movies/music to Kindle Fire
  Posted by: ciciyu80
  When: 29/04/2014 at 05:10:20


Ads

키보드를 사용한 지형 회전

XNA를 사용할 때, 우리는 매우 쉽게 키보드의 입력을 읽어 들일 수 있습니다. 키보드를 비롯해서 마우스, 게임 패드 등의 입력을 읽기 위해 필요한 Microsoft.Xna.Framework.Input namespace는 이미 기본으로 추가되어 있습니다.

이제 새로운 Windows Game 프로젝트를 생성하고 필요한 파일들을 이전의 tutorial에서 복사해 옵시다. 이번 tutorial에서는 키보드의 입력을 받아 기존의 지형이 회전하도록 해보겠습니다.

가장 먼저 할 일은 키보드의 입력을 읽고 처리할 간단한 함수를 추가하는 것 입니다. 함수의 이름은 ProcessKeyboard입니다.

 private void ProcessKeyboard()
 {
     KeyboardState keys = Keyboard.GetState();
 
     if (keys.IsKeyDown(Keys.PageUp))
     {
         angle += 0.05f;
     }
     if (keys.IsKeyDown(Keys.PageDown))
     {
         angle -= 0.05f;
     }
 }

키보드의 입력을 읽고 해당 키가 눌렸을 때 angle에 0.05f씩 더하거나 빼주는 간단한 코드입니다. 키보드의 입력은 Keyboard.GetState함수를 사용하여 매우 쉽게 읽어 올 수 있습니다.

키보드의 입력을 매 frame마다 읽어서 처리해주기 위해 ProcessKeyboard함수를 Update함수에서 호출합니다. 지금까지 딱히 하는 일 없이 존재하던 ‘angle += 0.05f’ 라인을 ProcessKeyboard함수를 호출하는 코드로 수정합시다.

 ProcessKeyboard();

마지막으로 키보드의 입력으로 인해 바뀐 angle값을 기존의 지형에 적용해주기 위해서 Draw함수의 월드 좌표계 생성 코드를 다음과 같이 수정합시다.

 Matrix worldMatrix = Matrix.CreateTranslation(-HEIGHT / 2, -WIDTH / 2, 0) * Matrix.CreateRotationZ(angle);

두 좌표계 matrix를 곱하는 순서가 뒤바뀌지 않도록 주의합시다.

이제 디버그(F5)키를 눌러 예상한대로 결과가 나오는지 확인해 봅시다.






Google
 
Webwww.riemers.net


If you appreciate the amount of time I spend creating and updating
these pages, feel free to donate -- any amount is welcome !



- Website design & XNA + DirectX code : Riemer Grootjans -
©2003 - 2011 Riemer Grootjans
Translations

This site in English
This site in Korean
This site in Czech

Microsoft MVP Award



2007 - 2011 MVP Award
DirectX - XNA

Contents

[Tutorials]
[XNA in C#]
Series 1: 지형
XNA의 시작
이펙트 파일
첫 번째 삼각형
월드 좌표계
회전, 위치 변환
인덱스
지형 생성의 기본
파일로부터 지형 생성
키보드 입력
[tut10]
[tut11]
[tut12]
[tut13]
-- Expand all --


Thank you!

Support this site --
any amount is welcome !

Stay up-to-date

I don't have the time to keep a News section, so stay informed about the updates by clicking on this RSS file!