목록게임프로그래밍 (83)
bdfgdfg
키보드 문자 키에 발생하는 메시지 - WM_CHAR -> 어떤 문자가 입력되었는지는 모름. 대소문자 구분 방법 wParam : 아스키 코드 값 LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { static wchar_t string[100]; static int index; switch (message) { case WM_CHAR: string[index] = (wchar_t)wParam; ++index; InvalidateRect(hWnd, NULL, true); break; case WM_PAINT: { PAINTSTRUCT ps; HDC hdc = BeginPaint(hWnd, &ps); TextOut(..
그래픽 -GDI(Graphics Device Interface) - 운영체제의 한 부분으로 출력을 담당(Gdi.dll) DC의 개념과 역할 DC - DC는 출력하기 위한 장치(화면 프린터)의 특성을 저장하는 구조체 - 우리가 화면에 무언가를 출력하기 위해서는 DC를 사용해야한다. 우리의 프로그램은 DC를 통해서 작업을 하고 DC가 GDI(OS의 영역)에게 명령을 하는 구조. 쉽게 말해 화면이 출력되는 모든 무언가를 이 dc구조체를 사용해서 간편하게 출력할 수 있다. DC를 사용하는 그래픽 오브젝트 - 비트맵 브러쉬 펜 폰트 Path등.. DC의 데이터형 -> 핸들(HDC) 화면 DC에 관련된 함수 - BeginPaint(),EndPaint() // WM_PAINT 메시지 처리에서만 사용가능 - GetDC..
유니코드 유니코드는 한문자당 2바이트. winapi의 함수는 유니코드로 받는 함수가 많기에 문자나 문자열을 유니코드 자료형으로 사용하는게 좋다. ex) wchar_t, wstring 윈도우 구조체 윈메인 함수에서 처음에 레지스터클래스라는 함수를 통해 윈도우 클래스를 설정 및 등록한다. ATOM MyRegisterClass(HINSTANCE hInstance) { WNDCLASSEXW wcex; wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = WndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = hInstance; wcex.h..
DeltaTime 델타타임은 간단하게 말해서 바로 이전 프레임을 수행하는데 걸린 시간을 의미한다. 우선 이 델타타임의 필요성부터 알아보자. 컴퓨터의 성능이 높아지고 컴퓨터들간의 성능차이가 존재해 프레임 처리 속도의 차이가 발생한다. 어떤 2D 카트게임이 있다고 보자. 어떤 컴퓨터는 10FPS* 다른 컴퓨터는 20FPS라고 할 때 1프레임에 1M를 이동한다면 두 컴퓨터가 같은 시간에 처리하는 프레임이 다르므로 10FPS의 카트는 초당 10M를 이동하며 20FPS의 카트는 초당 20M를 이동하는거다. (초당 처리하는 프레임이 각각 10,20이므로) *(FPS -> Frame Per Second - 초당 처리할 수 있는 프레임의 수). 두 카트의 성능은 같은데 컴퓨터의 성능이 달라 발생한 현상. 하지만 게임에..