24/03/19 13화. Win32API Key Manager (1) 문제점 : 1. 키 입력 동기화 Core::Update() 에서 키 입력을 받아주고 있다. 이 때문에 타이밍 차이로 한 프레임에서 동일한 키 입력에 대해서 다른 결과 값이 발생할 수 있다. 작업 처리를 할 때 키 입력을 할 때, 1번에 대한 작업을 처리 할 땐 key 입력이 있었는데 3번 작업을 하기 전에 키 입력이 종료되면 한 프레임에 안에서 동일 키 입렵에 대해 어떤 작업은 키 입력이 있던걸로 처리되고 또 다른 곳에선 키 입력이 없었던걸로 되는 문제가 발생한다. DeltaTime이 흐를 때 한 프레임 안에서 입력된 변화는 순차적으로 작업을 할 뿐, 동시처리를 해줘야한다. 2. 키 입력에 대한 구체적인 정의 키 입력에 대해 구체적인 ..
24/03/17 9화. Core 클래스 (2) 윈도우 사이즈 조정 : 윈도우 생성시 입력해준 윈도우 사이즈에는 출력 영역 외에도 제목표시줄, 메뉴바 영역도 포함한 사이즈이다. 이미지가 출력되는 영역을 "클라인트 영역" 이라고 하며 해당 영역의 사이즈를 윈도우 생성당시 입력해준 사이즈로 설정하기 위해선 추가적인 작업이 요구된다. AdjustWindowRect( ) , SetWindowPos( ) 이 두 함수로 윈도우를 조정할 수 있다. BOOL AdjustWindowRect( _Inout_ LPRECT lpRect,// 값을 조정해줄 RECT 객체 _In_ DWORD dwStyle,// Window 스타일 _In_ BOOL bMenu// 메뉴바 존재 유무 ); AdjustWindowRect() 함수는 메뉴..
특징 : 콜백 함수는 전달인자로 다른 함수에 전달되는 함수를 뜻한다. 함수의 동작을 완료하기 위해 외부 함수 내부에서 호출된다. 콜백함수는 함수 포인터 또는 람다 함수 등을 이용해 외부 함수에 전달된다. 예시 : #include class Item { public: int itemId = 0; int rarity = 0; int ownerId = 0; }; class FindByOwnerId { public: bool operator()(const Item* item) { return (item->ownerId == ownerId); } public: int ownerId; }; class FindByRarity { public: bool operator()(const Item* item) { retur..
객체가 함수처럼 동작한다고 하여 함수 객체라고 한다. 함수 호출 연산자 : () 연산자는 "함수 호출 연산자" 라고 불린다. 해당 연산자를 overloading 하여 함수 객체를 구현할 수 있다. 예제 : class Functor { public: void operator()() { std::cout