2024/04/02 47화. Win32API UI(1)_2 학습 목표 : UI 클래스 생성 48화. Win32API UI(2) 학습 목표 : 마우스 이벤트 함수 생성(on, down, away, click) 마우스 이벤트 : on : 마우스가 해당 UI위에 있다. down : 마우스가 해당 UI위에서 LBTN 을 눌렀다. away : 마우스가 해당 UI 위에서 LBTN을 땠다. click : 마우스가 해당 UI 위에서 down, away 를 수행했다. 49화. Win32API UI(3) 학습 목표 : UI의 계층 구조에서 Target UI 찾기 50화. Win32API UI(4) 학습 목표 : UI 계층 구조에서 TargetUI 찾기 미무리 결과 : 마우스가 UI 위에 올라갔을 때 테두리가 붉은색으로 변..
24/03/29 44화. Win32API Tool (1) 주제 : Tool 만들기 Tile : 2D 게임의 기본 요소 기존의 Object 객체들은 위치좌표(vPos)를 객체의 중심좌표로 사용했다. 하지만, Tile Object의 경우 위치좌표를 좌상단의 위치로 사용한다. 아래의 그림에서 A가 기존 객체들이며, B가 Tile 객체이다. 이러한 이유로 인해 Tile 객체에 충돌체를 배치하고싶다면 Tile 의 위치좌표로부터 크기의 절반만큼 우하단으로 이동시켜 배치해야한다. 일반적으로 타일의 크기는 2의 배수 단위로 사용하는게 좋다. (DX에서 GPU 사용과 관련이 있다.) 타일의 모양은 Rect를 사용했고 위치좌표를 좌상단으로 사용하기에 좌표 입력은 간단해서 좋았다. Tool Scene 진입시 Tile 객체 ..
24/03/28 40화. Win32API Camera (1) 목표 : Camera 개념을 도입해보자 class CCamera : 카메라의 기본 위치는 화면의 정중앙이다. 왜냐하면 지금까지 카메라가 없음에도 화면상으로 출력하던 위치가 해당 위치이기 때문 또한 카메라가 정중앙에 초점을 두고 있으면, 객체들의 실제 좌표와 렌더링 좌표가 동일하다. 화면의 정중앙은 해상도의 절반을 의미한다. (x,y) = (Resolution.x / 2, Resolution.y / 2) 렌더링 좌표 : 렌더링 좌표는 카메라에 상대적인 좌표이다. 카메라가 오른쪽으로 이동하면 가만히 있던 물체는 상대적으로 왼쪽으로 가는것 처럼 보인다. 때문에 카메라가 이동하면 객체는 카메라가 이동한 거리만큼 바대 방향으로 이동하게된다. 우리가 구현..
24/03/27 36화. Win32API Animation (1) 게임 제작을 위해 추가해야할 마지막 필수요소인 애니메이션을 구현해보자 CAnimator 클래스 : Animation 도 Collider와 마찬가지로 Component 로 만들거다. (CAnimator 클래스) Component 로 만드는 이유는 해당 기능을 가질 수동 있고 안 가질수도 있기 때문이다. CAnimator 객체를 소유하는 Object 객체가 사용할 애니메이션들을 관리하는 매니저 역할을 한다. 복사 생성자 와 깊은 복사 : Collider와 마찬가지로 Animator도 포인터(주소) 타입 멤버 변수이기에 복사생성자를 통해 Object 객체가 생성될 때, "깊은 복사"를 통해 복사되어야 한다. Animator 클래스 작성완료되면 ..
24/03/25 34화. Win32API Scene (1) 화면전환 : 현재 Start_Scene 만 화면에서 다루고 있는데 게임을 구현할땐, 여러 Scene을 자유롭게 전환할 수 있어야한다. 때문에 해당 기능을 구현 해본다. Scene 을 변경해주는 기능은 Scene을 관리하는 SceneMgr 클래스에서 수행해줘야한다. CScene::update() 함수는 Scene이 관리하는 Object 객체들의 update() 함수를 호출해주는 작업을 담당하기에 virtual 키워드를 붙이지 않았었다. 하지만 화면전환 관련으로 Scene의 자식객체들이 updata() 중 추가적으로 구현해야하는 기능이 추가되었기에 CScene::update() 함수를 가상함수로 전환한다. 가상함수로 전환했지만, 기본적으로 Scene..