Programing
-
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 ..
-
컴포넌트 기반 개발(CBD)Programing/Ent.. 2008. 8. 13. 17:47
XNA는 컴포넌트 기반이다. CBD (Component Based Development) : 컴포넌트 기반 개발의 약자로서, 소프트웨어 개발 방법론의 하나로 프로그램의 순서에 따라서 각각의 독립적인 컴포넌트로 구성하고 이를 짜맞춰 전체 프로그램을 구성하는 것을 말합니다. 이때 컴포넌트는 실행 버튼과 같은 작은 단위에서부터 간단한 프로그램 전체에 이르기까지 그 형태가 다양하며 만들어지며 개발 언어에 비지니스 로직을 접목한 개념이라고도 볼 수가 있습니다. CBD를 구현하기 위해서는 선 마이크로시스템즈 사의 Java, JavaBeans나 마이크로소프트 사의 Actvie X, OMG의 코바와 같은 객체 컴포넌트 기술 관련 프레임워크를 기반으로 프로그램을 구성해야 합니다. CBD를 이용해서 짠 프로그램의 가장 큰..
-
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(); 이펙트의 월드, 뷰, 투영행렬들을 설정..
-
가비지 컬렉션(Garbage Collection)Programing/C# 2008. 8. 13. 11:37
.NET 프레임워크의 가비지 수집 New 키워드를 사용하여 생성된 개체들은 managed 힙에 들어간다. 그러면 .NET은 이 개체에 필요한 메모리를 계산해서 힙에 빈 공간이 충분히 있는지 확인한다. 만약 Managed힙 상에 메모리를 할당할 수 없다면 가비지 수집기가 실행되어 사용되지 않는 메모리들을 해제하게 된다. 이 가비지 수집기는 다음과 같은 2가지 가정을 통해 행동을 하게 된다. 1. 최근에 생성된 개체들일수록 수명이 짧을 것이다. 2. 이미 오랫동안 존재해온 개체들은 앞으로도 한동안 살아있을 것이다. 또한 .NET 프레임워크에는 총 삼대가 존재한다. 0세대에서는 최근에 추가된 모든 메모리들을 저장한다. 시간이 지나 힙이 가득차면 가비지 수집기가 실행돼서 활동 중인 모든 개체들을 1세대로 보내고..
-
이벤트(Object sender, EventArgs e)Programing/C# 2008. 8. 6. 11:57
Object sender, EventArgs e 에서 sender는 어떤 오브젝트가 이 이벤트를 유발시켰는지를 나타나게 한다. 여러개의 버튼이 한가지 이벤트 함수를 공유하고 있을 때 이 이벤트 함수가 어느 버튼에 의해서 유발되었는지를 알 수 있는 방법은 sender를 확인해 보는것이다. 즉.... 누가 이벤트를 부르고 있느냐에 대한 정보이다.!! e 는 EventArgs 형으로 이벤트 발생과 관련된 정보를 가지고 있다. 예를 들어서 마우스 클릭 이벤트시에 마우스가 클릭된 곳의 좌표를 알고 싶다던가 마우의 왼쪽 버튼인지 오른쪽 버튼인지를 알고 싶을 때 e의 내용을 참고 하면 될 것이다. 이벤트 처리기(Event Handler)는 이벤트에 바인딩되는 메서드이다. 이벤트가 발생하면 이벤트와 연결된 이벤트 처리..
-
예외(Exception)Programing/C# 2008. 8. 5. 14:04
예외(Exception)란 프로그램 실행도중 발생하는 오류를 말한다. 에러는 그 발생 상황에 따라 크게 2가지로 나눌수 있는데 비교적 쉽게 에러를 찾을수 있는 오타나 문법적인 에러의 컴파일타임 에러와 디버깅 절차를 거치지 않으면 거의 잡기 힘든 상황의 런타임에러로 구분할 수 있다. 예외란 일반적으로 런타임 상황에 나타나는 오류를 의미한다. try ~ catch 문 일반적으로 런타임 예외처리는 try ~ catch를 사용한다. try문에서 예외가 발생할 가능성이 있는 코드의 영역을 지정해 주고, catch문에서는 발생한 예외나 throw 명령으로 전달된 예외를 처리하게 된다. 즉 try는 예외 감시가 이며, catch는 예외처리기 역할을 하게 된다. 경우에 따라서는 여러개의 에러발생을 처리하기 위해 다중 ..
-
컬렉션(Collection) 클래스Programing/C# 2008. 8. 5. 12:52
ArrayList 클래스는 IList로 구현된 대표적인 클래스이다. 이 클래스는 메서드를 통해 객제 저장, 검색, 삭제 등등을 할 수 있습니다. 대표적인 메서드들은 다음과 같다. Add() : 개체를 ArrayList의 끝 부분에 추가한다. AddRange() : ArrayList의 끝 부분에 ICollection의 요소를 복사한다. Clear() : ArrayList에서 요소를 모두 제거한다. Clone() : ArrayList의 단순 복사본을 만든다. Insert() : ArrayList의 지정된 인덱스에 요소를 삽입한다. InsertRange() : ArrayList의 지정된 인덱스에ICollection의 요소를 삽입한다. Remove() : ArrayList에서 맨 처음 발견되는 특정 개체를 제거..
-
컬렉션(Collection) 인터페이스Programing/C# 2008. 8. 1. 16:38
컬렉션(Collection)은 ArrayList, SortedList, Hashtable, Stack, Queue, NameValueCollection 과 같은 유형들이 있다. 이들은 데이터를 보관하는것 뿐만 아니라. 수정, 삭제, 삽입, 검색 등의 다양한 기능을 제공해 준다. 배열과 가장 차이가 나는 특징은 메모리의 사이즈를 동적으로 확장할 수 있다는 점이다. 배열은 첨자로 배열을 생성후에 그 첨자의 범위 내에서만 사용할 수 있는 반면에 컬렉션류들은 데이터를 삽입을 하게되면 동적으로 메모리를 늘려주게 된다. 쉽게 컬렉션은 소형 데이터베이스라고 생각하면 된다. (단지 프로그램이 실행되는 동안만~~~) 컬렉션의 네임스페이는 System.Collections 이다. 위는 컬렉션류 인터페이스의 상속구조를 보여..