제작 기간
- 총 15일
게임 클래스 구성
GameManager
- 싱글톤 클래스이다. (wWinMain 함수에서 반복문을 구성해 해당 클래스의 Update함수를 호출한다.)
- 클래스 멤버는 MainScene, GameScene을 가지고 있고, 화면을 그리기 위한 HDC, HWND를 멤버로 가지고 있다.
- Update 함수에서 메인화면, 게임화면의 로직을 호출한다.
BitmapManager
- 싱글톤 클래스이다.
- Bitmap배열의 vector를 멤버로 가지고 있다.
- 게임 리소스를 로드해서 저장하고 관리한다.
MainScene
- 메인화면을 관리하는 클래스이다.
- 각 메뉴 및 애니메이션(별 전광판)을 표현하기 위한 Bitmap 포인터(배열)와 좌표 구조체를 멤버로 가지고있다.
- 메뉴를 선택할 수 있고, deltaTime을 적용해 타이틀에서 별 전광판 애니메이션을 재생한다.
GameScene
- 게임화면을 관리하는 클래스이다.
- 상단 UI(GameUI), 배경(Background), 장애물(Ring, Lamp, Rostrum)을 관리하는 클래스를 멤버로 가지고 있다.
- Player의 상태를 구분(Play, Die, Clear)해서 다른 처리를 하도록 한다.
- deltaTime을 이용하여 일정 시간마다 점수, 장애물 세팅을 한다.
Bitmap
- 그래픽 리소스의 크기를 멤버로 가지고있다.
- backDC, 좌표를 오버로딩하여 그리는 함수들이 정의되어있다.
Player
- 키 입력을 받아서 캐릭터의 좌표를 이동시킨 뒤, 애니메이션을 그린다.
- 각 종 장애물의 Collider hit 판정을 위한 Rect 반환 함수를 가지고 있다.
Ring(BigRing, SmallRing), Lamp, Cash, Rostrum
- Ring의 경우 BigRing, SmallRing에 상속을 한 뒤, GameScene에서 업캐스팅으로 사용한다.
- Player에서 Collider rect를 받아와 매 프레임 Hit 체크를 해서 Player의 상태를 변경한다.
- deltaTime을 이용해 애니메이션을 재생한다.
Background
- 배경을 스크롤링한다.
- 게임 클리어시 배경 애니메이션을 재생한다.
기타
- 더블 버퍼링을 적용하여 화면 깜빡임을 제거했다.
'Game > Personal development' 카테고리의 다른 글
[Unity] 미로 게임 제작 (0) | 2022.04.28 |
---|---|
[Unity] 모바일 전략 시뮬레이션 (0) | 2022.04.16 |
[WIN API] 카드 맞추기 게임 (0) | 2022.01.30 |
산성비 게임 제작 (C++) (4) | 2022.01.23 |
RPG 게임 제작 (C++) (0) | 2022.01.22 |