전체 글
-
MoveToEx & LineTo 함수를 이용한 선 그리기Win API/4. GDI 2021. 4. 2. 10:58
개발 환경은 Visual Studio 2008 위의 두 함수를 이용해서 간단한 직선을 그려 보자. 아래는 MoveToEx함수와 LineTo 함수에 대한 설명이다. 프로그램 실행결과 소스 파일 이번에는 마우스를 활용해서 그림을 그려보자. 마우스가 눌려있는 상태에서 마우스를 움직이면 선이 그려지며, 마우스가 눌려있는 상태에서 떼지면 그림 그리는 동작이 끝난다. 쉽게 설명해서 마우스 좌클릭된 상태에서 그림이 그려지고 마우스 좌클릭이 해제되면 그림 그리기가 종료 된다. 여기서 마우스가 좌클릭 상태인지 좌클릭 해제가 된 상태인지를 판단할 변수가 하나 필요한데 bool 변수로 두면 된다. 마우스의 눌림 상태, 이동 상태, 떼짐 상태는 다음의 메시지를 이용하면 된다. WM_LBUTTONDOWN, WM_MOUSEMOV..
-
5 - (7). 에너미의 총알 생성하기C,C++로 만드는 간단한 프로젝트/Invaders(Galaga) 게임 만들기 2021. 4. 2. 10:44
아래의 내용에 이어서 에너미의 총알 생성을 진행 해보자. designatedroom87.tistory.com/399?category=935606 5 - (6). Shot의 Manager 클래스 만들고 플레이어의 총알 생성하기 아래의 내용에 이어서 Shot을 관리하는 Manager 클래스를 만들어 보자. 이 매니저 클래스는 싱글톤 클래스로 구현한다. designatedroom87.tistory.com/398 5 - (5). 플레이어 클래스를 싱글톤 클래스화 하기 아 designatedroom87.tistory.com 에너미의 총알 생성을 위해서는 기존의 EnemyManager 클래스에 멤버함수 2개를 추가하도록 한다. 그리고 나서, main.cpp 파일에서 이 내용을 만들면 된다. 아래는 main.cpp ..
-
5 - (6). Shot의 Manager 클래스 만들고 플레이어의 총알 생성하기C,C++로 만드는 간단한 프로젝트/Invaders(Galaga) 게임 만들기 2021. 4. 2. 10:41
아래의 내용에 이어서 Shot을 관리하는 Manager 클래스를 만들어 보자. 이 매니저 클래스는 싱글톤 클래스로 구현한다. designatedroom87.tistory.com/398 5 - (5). 플레이어 클래스를 싱글톤 클래스화 하기 아래의 내용에 이어서 플레이어 클래스를 싱글톤 클래스로 변경하자. designatedroom87.tistory.com/397 5 - (4). Shot 클래스화 하기 아래의 내용을 이어서 진행하자. designatedroom87.tistory.com/396 5 - (3)... designatedroom87.tistory.com ShotManager 헤더 파일을 하나 만들어서 ShotManager 클래스를 정의한다. 각 멤버함수들의 내용은 기존의 main 소스 파일에 정의..
-
활용 - 체크박스의 상태에 따라 도형 출력하기Win API/4. GDI 2021. 4. 2. 10:35
개발 환경은 Visual Studio 2008 우리가 만드려는 프로그램의 기본 UI는 아래와 같다. 그리고 아래는 "Draw Ellipse?" 체크 박스의 상태에 따라 다른 도형들이 그려진다. 그리고"Good bye Message?" 체크 박스를 체크 상태로 두고 윈도우 창을 종료하면다음과 같은 메시지 창을 띄워 보자. 프로그램 설계 두 개의 체크 박스가 필요하다. 첫 번째 체크 박스의 상태에 따라 직사각형 혹은 타원이 그려져야 하므로 이를 기억할 변수가 하나 필요하다. 그리고 도형을 그리는 작업은 WM_PAINT 메시지에서 진행하면 된다. 윈도우 창이 종료될 때 메시지를 띄울 때는 WM_WM_DESTROY 메시지에서 처리를 하면 된다. 소스 파일
-
활용 - 정사각형들을 화면 크기에 맞게 배치하기Win API/4. GDI 2021. 4. 1. 21:12
SelectObject함수를 활용해서 각 정사각형들의 테두리 색과 채움색이 전부 다르다는 조건을 붙이자. 즉, 다음과 같은 실행결과가 나와야 한다. 사각형을 그리는 함수는 Rectangle 함수를 이용할 것이다. 이 함수의 매개변수는 렌더할 사각형의 좌측상단점과 우측하단점을 필요로 한다. 그렇기 때문에, 이 좌표들을 가지고 작업을 해야할 필요가 있다. 일단 정사각형을 여러 개를 그려야 하므로, 그리는 순서를 먼저 생각해보자. 위의 각 정사각형들을 하나의 이차원 배열로 생각하면 행을 기준으로 열을 탐색하는 방향으로 생각을 해서 그려보자. 좌표로 생각하면 초기위치를 ( 0, 0 )으로 잡고 정사각형의 변을 100으로 두면 첫 번째 정사각형의 렌더할 좌표는 좌측상단( 0,0) 우측하단( 0 + 100, 0 +..
-
TextOut - 문자열 출력 함수Win API/4. GDI 2021. 4. 1. 20:23
개발 환경은 Visual Studio 2008 TextOut 함수를 이용해서 아래와 같이 윈도우 창에 문자열을 출력해보자. 아래는 TextOut 함수에 대한 설명이다. 소스 파일 아래의 내용은 폰트를 만들어서 출력하는 내용이다. 아래는 CreateFont 함수에 대한 설명이다. 소스 파일 이번에는 아래와 같이 색상을 추가해보자. SetTextColor 함수와 SetBkColor 함수 SetBkMode 함수에 대한 설명은 아래와 같다. 소스 파일
-
GDI ObjectWin API/4. GDI 2021. 4. 1. 19:43
GDI오브젝트에는 펜, 브러시, 폰트, 비트맵, 팔레트, 리전이 있다. GDI오브젝트는 모두 핸들로 관리되므로, 우리는 다만 GDI 오브젝트를 생성하는 함수를 부르고, 이 함수가 리턴하는 핸들을 받아서 사용하기만 하면 된다. GDI오브젝트를 만들 때 핸들을 발급받으며, 선택하거나 삭제할 때는 이 핸들만 가지고 GDI오브젝트를 사용한다. GDI오브젝트란 그래픽 출력에 사용되는 도구를 뜻함. 선을 그을 때는 펜으로 그리며, 면은 브러시로 채우고 문자열을 출력할 때는 폰트를 사용한다. GDI오브젝트를 모아 놓은 것이 DC이며 GDI는 현재 DC에 선택되어 있는 GDI 오브젝트를 사용한다. 그래서 사용자는 그래픽을 그리기 전에 DC에 적절한 오브젝트를 선택함으로써 원하는 모양과 속성으로 그래픽을 출력할 수 있다..