본문 바로가기
728x90

WinAPI12

다시 공부 하는 Win API (8) - UI 제작(1) 이번에는 Win API의 UI를 다루어 보고자 한다.저번 F1,2키를 이용하여 화면을 전환하는 것을 하였는데 이번에는 Button을 이용하여 화면 전환을 해보겠다. 우선 도형을 그려주던 부분을 조금 더 세분화 하기 위해 Basic폴더를 만들고 그 안에 GameObject.h 오브젝트를 관리할 파일을 만들어준다. 다음 기존에 있던 Circle.h 파일로 이동하여 GameObject의 자식으로 만들고 중심을 잡아주는 부분을 제거하여준다. 다음 네모를 그려주는 부분의 작성을 위해 Basic파일에 Rect.h를 만들어준다.기존에 있던 Circle.h와 cpp도 Basic파일로 이동시켜 관리한다. C++은 객체를 만들 때 이미 만들어진 뒤 수정을 하는 것이 아닌 만들면서 초기화를 하는 것을 원칙으로 한다.그렇기에.. 2025. 12. 10.
다시 공부 하는 Win API (7) - Scene Management, 공간 분할 기법활용 Scene Management 씬 관리에 대해서 먼저 알아보자씬 관리는 공간 분할 기법을 의미하는 말로렌더링 효율성과 대규모 월드 관리를 위해 필수적으로 알아야하는 프로그래밍 기법이다. DirectX 자체는 그래픽스 API 이기 때문에 자동으로 분할을 해주지 않기에 개발자가 직접 시스템을 구현해야 한다.현재 실습하고 있는 창은 분할 관리를 해줘도 크게 효율이 나지는 않으나 넓은 게임 월드에서는 씬 전체를 한 번에 렌더링하지 않고카메라 시야 즉 사용자 시점에서 들어오는 부분만 선택적으로 렌더링 하여 성능을 크게 올려주게 된다. 또한 이러한 효율 외에도 게임 오브젝트들을 계층적 데이터 구조로 구성해 효율적인 관리를 하기에도 용이하게 해준다.부모 - 자식 관계를 통한 변환(이동, 회전, 크기)를 상속하여 렌더.. 2025. 12. 9.
다시 공부 하는 Win API (6) - 슈팅 게임 만들기(4) 저번 자유롭게 움직이며 마우스 방향으로 총알을 날리는 부분 까지 완성을 하였다.이번에는 적군 또한 나를 향하여 총알을 발사하는것을 목표로 만들어 보고자 한다. 우선 적이 플레이어의 위치정보를 알아내야 하는 부분부터 코드를 만들어 본다. Enemy.h로 이동하여 Player의 주소를 통해 정보를 받아 내기 위한 준비를 해준다. Enemy를 관리해주는 EnemyManager.h에도 추가해주고, 정의를 만들어주고cpp 파일로 이동해 함수 정의에 Enemy에 player를 세팅해준다.다음 ShootingScene.cpp로 이동해 Set을 해주었으니 Get을 통해 값을 받아온다. 플레이어의 정보를 받아왔으니 이제 Enemy.h로 이동해서 총알을 발사하는 로직을 구현 준비한다.총을 발사할 시간 간격변수와 함수 선언.. 2025. 11. 27.
다시 공부 하는 Win API (5) - 슈팅 게임 만들기(3) 벡터에 대한 간단한 공부를 먼저 시작하겠다A(1,2) 와 B(2,1) 을 그래프를 통하여 그린 뒤두 벡터를 더하면 C(3,3) 이 나오게 된다. 3,3도 그래프에 찍어준다음 A와 B에서 해당 C로 선을 그어주면해당 A와 B점에서 그은 선분a는 B와 ,b는 A로 같은 벡터임을 알 수 있다.여기서 벡터는 위치는 상관 없는 방향과 힘으로 되어있기 때문이다. 벡터끼리의 곱셈은 불가능하기에, 스칼라를 이용 한다스칼라는 여기서 힘 즉 방향이 없는 크기 값이다.A(1,2) * 2 라고하면 각 항에 곱해주어 2,4가 된다. 이를 또 그래프로 그려주면 방향은 그대로고 힘만 증가한 상태가 된다. 이제 해당 벡터의 개념을 간단히 알아본 상태에서 Vector.h에 연산자 오버로딩을 통한 덧셈을 구현해보겠다.이를 활용하여 움.. 2025. 11. 25.
728x90