Programing/XNA
-
SpriteBatch.Draw 메서드Programing/XNA 2009. 4. 10. 17:46
SpriteBatch.Draw 메서드는 총 7개로 Overloaded 하고 있다. 사용되어지는 매개변수중 Texture2D(텍스처)와 Color는 거의 고정적이지만 아래와같이 Overloaded 한다. 1. Draw (Texture2D, Rectangle, Color) - 가장 베이직적인 매개변수를 가지는 기본형이다. 두번째 매개변수는 화면의 그리게 될 위치값이다. 2. Draw (Texture2D, Vector2, Color) - 더 베이직적인 메서드이다. 텍스처와 그놈의 위치, 컬러값을 가진다.(이게 더 많이 사용) 3. Draw ( Texture2D, Rectangle, Rectangle, Color) - 특이하게 사각형이 2개인데 1번 매서드와 다 같지만 3번째 매개변수는 텍스처의 자르기에 사용될..
-
ElapsedGameTime, ElapsedRealTimePrograming/XNA 2009. 4. 9. 12:41
GameTime의 속성은 다음과 같다. ElapsedTime(경과시간) 이냐 TotalTime이냐 구문하는것과 그것이 Real 이냐 Game이냐만 구문하면 될듯.... 1. ElapsedGameTime : 최종 업데이트로부터 경과된 시간 2. ElapsedRealTime : 마지막 프레임으로 부터 실제로 경과된 시간(??)^^; 3. TotalGameTime : 프로그램이 실행된 후로부터의 시간 4. TotalRealTime : 프로그램이 실행된 후로부터의 실제 시간
-
XNA 카메라 설정Programing/XNA 2009. 4. 2. 02:05
XNA에서는 다이렉트와 비슷하게 카메라 설정을 하는데 Matrix구조체는 상당히 많은 함수들을 내장하고 있고 이것들을 사용하게 되면 쉽게 카메라 설정이 가능하게 된다. 1. 투영 - Matrix.CreatePerspectiveFieldOfView() 메서드를 사용한다. Matrix.CreatePerspectiveFieldOfView (시야각도, 종횡비,근거리클리핑, 원거리클리핑, 투영행렬이저장될 변수) 첫 번째 매개변수 시야각은 보통 45도를 많이 사용하게 되는데 MathHelper 클래스를 사용하여 많이 표현한다. (MathHelper.PiOver4 = 45도) 두번째 매개변수는 종횡비이다. 이 값을 위해 아래와 같이 그래픽 디바이스를 이용한 값을 저장해 두면 편리하다. // 종횡비 float aspe..
-
게임 서비스 만들기Programing/XNA 2009. 3. 30. 00:00
XNA에서는 게임컴포넌트를 생성하여 여러 가지 항목들을 놀리적으로 분리시킬 수 있게 하여 코드 관리를 쉽게 하였다. 하지만 만약 여러 게임컴포넌트가 동일한 기능들에 접근해야 할 경우나 다른 게임컴포넌트 긴응에 접근해야 할 경우는 문제가 될 수 있다. 예를 들어 입력처리 게임컴포넌트가 있고, 게임플레이어 컴포넌트가 있다고 가정하면, 이 플레이어는 키를 입력받을때 마다 입력 처리기 컴포넌트로 접근을 해야된다. 이를 위해서 입력처리 게임컴포넌트는 게임 서비스로 등록 시켜주는 것이 좋은 코딩이다. Game 개체는 여러 가지 서비스들을 가지고 있는데 대표적으로 GraphicsDevice가 그것이다. GraphicsDeviceManager graphics = (GraphicsDeviceManager)Game.Ser..
-
VertexPositionNormalTexture 구조체Programing/XNA 2008. 9. 9. 17:49
VertexPositionNormalTexture 구조체는 정점들의 내용을 저장하는데 사용된다. 정점의 내용으로는 정점의 위치, 정점의 법선, 텍스처의 좌표값을 가진다. public VertexPositionNormalTexture ( Vector3 position, Vector3 normal, Vector2 textureCoordinate ) 보통 private VertexPositionNormalTexture[] vertices; 와 같이 선언해서 vertices에 정점들을 담아서 사용하면 된다.
-
XNA 프레임워크의 로직 흐름Programing/XNA 2008. 8. 19. 14:56
XNA 프레임워크의 로직 흐름에 대해 알아 두자!! 1. 메인 응용 프로그램이 게임 생성자를 호출한다. 2. 게임 생성자가 게임컴포넌트들을 생성하고 각각 그들의 생성자를 호출한다. 3. XNA 프레임워크가 게임의 Initialize함수(초기화)를 호출한다. 4. XNA 프레임워크가 각 게임컴포넌트의 Initialize함수(초기화)를 호출한다. 5. 각 Drawable 게임컴포넌트의 LoadContent함수를 호출한다. 6. 본 게임의 LoadContent함수를 호출한다. 7. 본 게임의 Update 메서드를 호출한다 8. 각 게임컴포넌트의 Update 메서드를 호출한다. 9. 본 게임의 Draw함수를 호출한다. 10. 각 Drawable 게임컴포넌트의 Draw함수를 호출한다. 11. 노란박스안의 7 ~1..
-
Matrix MethodsPrograming/XNA 2008. 8. 19. 11:22
XNA의 Matrix Methods들에 대해서 정리해 보자... 1. CreatePerspectiveFieldOfView 함수 - 시야를 만들어 투영 해주는 함수이다. Matrix.CreatePerspectiveFieldOfView (MathHelper.PiOver4, aspectRatio, 0.0001f, 1000.0f, out projection); 오버로딩된 함수로 총 4개 또는 5개의 매개변수를 가지게 되는데... 첫번째 매개변수는 각도를 나타낸다. 위 예제에서의 MathHelper.PiOver4는 45도를 나타내는 상수값이다. 두번째 매개변수는 종횡비를 나타낸다. 종횡비란 화면의 가로 / 세로 를 말하는 것으로 예를 들어 다음과 같이 종횡비를 계산 할 수 있다. float aspectRatio ..
-
XNA 이펙트Programing/XNA 2008. 8. 13. 15:06
XNA 3D 게임에서 화면에 무언가를 출력할 때는 이펙트를 사용한다. 이들은 조명, 텍스처, 심지어는 정점 위치까지 처리한다. BasicEffect effect = new BasicEffect(graphics.GraphicsDevice, null); 첫번째 매개변수는 그래픽 디바이스, 두번째 매개변수는 이펙트풀이다. NULL값을 전달하는 이유는 사용할 이펙트는 수는 하나이고, 여러 이펙트들이 공유할 풀이 필요 없기 때문이다. 이펙트를 만든 뒤에는 앞으로 사용할 속성들을 설정한다. effect.World = world; effect.Projection = projection; effect.View = view; effect.EnableDefaultLighting(); 이펙트의 월드, 뷰, 투영행렬들을 설정..