ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • (챕터 02) 점에서 시작하는 2D그래픽(1)
    @ 16. 1 ~ 17. 1/게임프로그래밍의 정석 2013. 4. 23. 23:48

    어느덧 2장까지 왔다..물론 책은 현재 3장 이상을 보고 있으나..다시 볼겸...블로그에 작성중에 있다.

    2장부터는 준비된 라이브러리를 바탕으로 시작이 되더라..!?

    2010버전에서는 안되며 2008버전으로 해야 정신상태에 이로운 부분이다..ㅋㅋ;

    이번부터 사용할 라이브러리 클래스는 다음과 같다고 설명한다.

    class Framework{
    public:
    	static unsigned* videoMemory();
    	static int width();
    	static int height();
    	void update();
    };
    
    

    간단한걸!?

    책에서는 이 중 세가지 함수는 그냥 사용하면 되고..한가지는 직접 만들어야한다고 설명된다.

    videoMemory()

    화면을 구성하는 픽셀 배열을 가져오는 함수라고 설명되어있다. 예를 들어 5 * 4픽셀 배열이라면 1차원배열이므로..(y * 폭 + x)로 나타낼 수 있다.

    이 배열은 unsigned 배열이며 하나가 한 픽셀에 해당된다고 한다.

    0~7비트 청색, 8 ~ 15비트 녹색, 16 ~ 23비트는 적색..24 ~ 31 미사용..이다

    width()와 height()는 화면 폭과 높이를 구하는 함수란다..

    update()를 직접 작성해야한다는데..별게 없다.

    그리고 메인루프 한번에 해당하는 함수란다.

    또한 라이브러리 전체가 GameLib 이름공간에 포함되어 있기 때문에 namespace GameLib 블록안에 넣어야하며 헤더로  include "GameLib/FrameWork.h" 를 포함하여야한다.

     

    100, 200에 점을 찍어보자!

    그러면 우선 픽셀배열을 가져와야하니.. unsigned* vram=videoMemory(); 를 해서 얻고

    vram[200 * width() + 100]=0xff0000; 이라고 해야한다.

     

    들어가기 앞서 지금까지(비트연산)포함된 배달맨의 원문 소스를 보도록 하자! 전부 이해가 되어야할 부분이다

     

     

    엄청 길게 느껴지지만..생각보다 짧은 량이다. 글씨가 깨지것은 이유를 모르겠음..원래 원본 소스자체가 깨져있다는...

    이것을 바탕으로 라이브러리를 포함한 점 그래픽으로 발전해보도록 하겠다.(책에서는 라이브러리 및 전체 소스를 이용하는데 제한이 없다고 한다.; ㅋ 이렇게 좋은책이..!)

    다음장에 이어서..

Designed by Tistory.