Win32 API(4)
-
어소트락 게임 아카데미 Win32 API 정주행 3회차 - PeekMessage
1. 그림판 사각형 이전 시간에 사용자의 키보드 입력을 통해 우리가 그린 사각형을 실시간으로 이동시키는 코드를 작성했었다. 오늘 해볼 것은 아래와 같이 그림판에서 사각형을 그리는 버튼을 누른 후 사각형을 그리는 행위를 구현할 것이다. 이 버튼을 누르고 사각형을 어떻게 그리게 될까? 우선 사각형을 무슨 색 선으로 그릴지 결정한 후에 사각형을 그린 지점을 마우스로 선택하고 아래의 그림에서 A지점부터 B지점까지 마우스의 왼쪽 버튼을 꾹 누르고 있는 상태로 마우스를 이동시키면 아래의 그림과 같이 사각형이 그려질 것이다. 이걸 구현하려면 어떻게 해야할까? 우선 몇가지 필요한 것이 있다. 다음 상황에 대한 마우스 좌표와 이벤트가 필요하다. 마우스 왼쪽 버튼을 누를 때 마우스가 움직일 때 마우스 왼쪽 버튼을 뗐을 때..
2023.05.20 -
어소트락 게임 아카데미 Win32 API 정주행 2회차 - 메세지와 이벤트
이전 시간에 Win32 API에서 메인 함수가 어떻게 동작하는지에 대한 간단한 흐름을 알아보았고 그 과정에서 만났던 여러 키워드들이 어떤 역할을 하는지 알아보았다. 그 과정에서 switch case문을 통해 메시지를 보고 어떤 명령을 처리하는지 분기를 나누는 코드도 접할 수 있었는데 이번에는 그 메세지들과 그에 따른 처리에 대해서 한 번 다뤄볼 것이다. 1. WM_PAINT 메세지 이전과 같이 프로젝트를 맨 처음 생성하면 아예 Visual Studio에서 자동으로 코드를 생성해준다는 것을 이제는 다 알 것이다. 그 중에서 WndProc라는 함수를 보면 프로그램의 실행 흐름이 case WM_PAINT라는 부분에 도달할 때, 화면에 그림을 그려준다는 주석을 발견할 수 있다. 크게 보면 우리가 게임을 만든다고..
2023.05.20 -
어소트락 게임 아카데미 Win32 API 정주행 1회차 - main.cpp
Win32 API를 시작하기 위해 프로젝트를 만들면 기존에 C++에서 배웠던 main함수는 없고 엄청 어려워 보이는 처음보는 키워드들이 보인다. 하지만 복잡할 것은 전혀 없고 알고보면 어이없을 정도로 별 거 없다. 1. wWinMain 함수의 매개변수 1) SAL (Soursecode Annotation Language) 강의에서 다뤘던 것은 SAL 문법이라는 것이었고 최신 C++은 이런 역할을 하는 키워드들을 문법적으로 제공한다. 우선 아래의 코드를 보자. 이 함수는 메인 함수와 같은 역할을 하는 녀석으로 Visual Studio에서 프로젝트 생성을 할 때, Windows 데스크톱 애플리케이션으로 생성할 경우에 나타나는 프로그램의 첫 진입점 역할을 하는 녀석이다. int APIENTRY wWinMain..
2023.05.18 -
어소트락 게임 아카데미 Win32 API 정주행 - Intro
게임 엔진 만들겠답시고 DX12를 시작한지 얼마 되지 않은 시점에서 갑자기 Win32 API를 정주행하게 되었다. 갑자기 뜬금없이 Win32 API를 정주행하려는 이유는 아래에 있는 링크의 글 때문이다. https://dafher-diary.tistory.com/55 루키스 게임수학 정주행 2회차 - 번외(버그) 갑자기 뜬금없이 번외가 올라와서 당황스러울 것이다. 다름이 아니고 프로젝트를 하다가 어이없는 상황을 만나게 되어서 이렇게 글을 쓰게 되었다. 인프런의 강의를 유료로 결제하면 강의 영상 dafher-diary.tistory.com HWND 변수에 값을 제대로 넣지 않아놓고 내 실수인 것도 모른 상태로 억까라고 울부 짖었던 과거가 떠올랐고 왜 내가 그런 실수를 했는지 자세히 생각해 보았다. 물론 그..
2023.05.18