VanQussong
'Win32API' 카테고리의 글 목록 (2 Page)

Win32API

Win32API

Win32API_StudyNote_6

24/03/24 31화. Win32API Collider 활용 & Event Manger (1) 충돌 이벤트 처리 : 충돌 이벤트에 대한 처리는 Object 마다 다를거다. 때문에 충돌 이벤트에 대한 처리는 충돌체를 가지고 있는 Object가 담당하도록 해줘야한다. 모든 객체의 부모 클래스인 CObject 클래스에 충돌 이벤트 처리 함수를 가상함수로 만들어둔다. 충돌체를 가지고 있는 자식 Object 클래스는 이를 override 하여 이벤트 발생시 수행할 작업을 구현해둔다. 충돌이 발생하면 Collider 클래스는 자신을 소유한 Object 클래스의 충돌 이벤트 함수를 호출해준다. 프레임 단위 동기화 처리 : 한 사건에 대해 동일 프레임 안에선 동일한 처리를 해줘야한다. 동일 프레임 안에서 코드 자체는..

Win32API

Win32API_StudyNote_5

24/03/22 25화. Win32API Collider (1) 충돌 : 충돌 작용없이 게임을 만드려고 하면, 제작할 수 있는 게임의 폭이 엄청 줄어든다. 충돌의 조건이 "충돌하면" 뿐이면 충돌에 대한 상호작용의 결과가 애매해질 수 있다. 때문에 충돌에 디테일한 상태와 조건이 필요하다. 충돌 상태의 종류에는 "Enter(충돌진입) , Stay(충돌유지) , Exit(비충돌)" 3가지가 있다. 설계 : 충돌 이벤트가 필요한 객체가 있고 필요 없는 객체가 있다. 클래스 설계를 할때 확장성 있는 구조를 만들려고 해야한다. 대표적인 확장성 있는 구조로는 "Component 기반 구조"가 있다. Component는 필요할때 끼워넣을수 있는 부품과도 같은 클래스(객체)다. final update() : 신경써주지 ..

Win32API

Win32API_StudyNote_4

24/03/20 21화. Win32API Resource (1) Resource 클래스 생성 : Resource 클래스는 Texture, Sound 클래스 등으로 파생되어 사용될 것이다. 리소스의 이름과 리소스를 읽어올 경로(상대경로)를 멤버 변수로 가진다. 리소스의 경로가 상대경로인 이유는 실행파일의 위치에 따라 절대경로는 바뀐다. 때문에 절대경로로 가지고 있어도 의미가 없다. CTexture 클래스 : Resource 클래스를 상속하는 Texture 클래스 생성 멤버로 DC 와 BITMAP 객체를 가진다. Texture 파일을 Load 하여 BITMAP에 저장해두면, DC에 해당 BITMAP 을 연결하여 메인 윈도우의 DC와 더블 버퍼링을 진행중인 memDC의 BITMAP 객체에 Load한 이미지를 ..

Win32API

Win32API_StudyNote_3

24/03/19 13화. Win32API Key Manager (1) 문제점 : 1. 키 입력 동기화 Core::Update() 에서 키 입력을 받아주고 있다. 이 때문에 타이밍 차이로 한 프레임에서 동일한 키 입력에 대해서 다른 결과 값이 발생할 수 있다. 작업 처리를 할 때 키 입력을 할 때, 1번에 대한 작업을 처리 할 땐 key 입력이 있었는데 3번 작업을 하기 전에 키 입력이 종료되면 한 프레임에 안에서 동일 키 입렵에 대해 어떤 작업은 키 입력이 있던걸로 처리되고 또 다른 곳에선 키 입력이 없었던걸로 되는 문제가 발생한다. DeltaTime이 흐를 때 한 프레임 안에서 입력된 변화는 순차적으로 작업을 할 뿐, 동시처리를 해줘야한다. 2. 키 입력에 대한 구체적인 정의 키 입력에 대해 구체적인 ..

Win32API

Win32API_StudyNote_2

24/03/17 9화. Core 클래스 (2) 윈도우 사이즈 조정 : 윈도우 생성시 입력해준 윈도우 사이즈에는 출력 영역 외에도 제목표시줄, 메뉴바 영역도 포함한 사이즈이다. 이미지가 출력되는 영역을 "클라인트 영역" 이라고 하며 해당 영역의 사이즈를 윈도우 생성당시 입력해준 사이즈로 설정하기 위해선 추가적인 작업이 요구된다. AdjustWindowRect( ) , SetWindowPos( ) 이 두 함수로 윈도우를 조정할 수 있다. BOOL AdjustWindowRect( _Inout_ LPRECT lpRect,// 값을 조정해줄 RECT 객체 _In_ DWORD dwStyle,// Window 스타일 _In_ BOOL bMenu// 메뉴바 존재 유무 ); AdjustWindowRect() 함수는 메뉴..