제작 기간
- 총 9일
게임 클래스 구성
GameManager
- 클래스 멤버는 Player, Monster, DataManager를 가지고 있다.
- Main 함수에서 GameManager의 객체를 생성한 뒤, 게임을 시작하게된다.
- 각 화면은 정적 클래스(Draw)에 화면을 그리는 함수를 정의해서 GameManager에서 호출하여 그린다.
DataManager
- Weapon, Player, Monster의 데이터 문자열, Monster 배열, Weapon 배열 벡터를 멤버로 가지고있다.
- 기본 데이터들(Weapon, Player, Monster)의 데이터를 가지고 있다.
- 저장하기, 불러오기 기능으로 데이터들을 파일로 입출력하는 기능을 가지고 있다.
Unit
- 추상 클래스
- Player와 Monster에 상속한다.
- 저장이 될 데이터 값들을 멤버로 두고 있다. (이름, 체력, 레벨, 경험치 등)
- 데미지를 주고받는 기능, 정보 보기 기능 등을 추상 함수로 가지고 있다.
Player
- Unit을 상속 받는다. (Unit의 추상 함수를 재정의해서 사용)
- Weapon을 포인터 멤버로 가지고 있다.
- 레벨 업, 스킬 기능을 가지고있다.
Monster
- Unit을 상속 받는다. (Unit의 추상 함수를 재정의해서 사용)
Weapon
- 추상 클래스
- 각 무기 클래스에 상속한다.
- Player와 DataManager에서 업캐스팅해서 사용한다.
- 무기 이름, 무기 데미지, 무기 값을 멤버로 가지고있다.
- 무기의 스킬, 무기 종류 확인 등을 추상 함수로 가지고 있다.
각 무기 클래스
- Weapon을 상속 받는다. (Weapon의 추상 함수를 재정의해서 사용)
Draw
- 게임 화면을 그리기 위한 함수를 정의해놓았다.
- 콘솔 좌표 이동, 게임 문자열 중앙 정렬로 그리는 등의 함수가 정의되어 있다.
저장되어있는 데이터 구조
- 기본 유저, 몬스터의 데이터, 유저의 플레이 데이터, 무기 데이터
'Game > Personal development' 카테고리의 다른 글
[WIN API] 서커스 찰리 게임 (0) | 2022.02.05 |
---|---|
[WIN API] 카드 맞추기 게임 (0) | 2022.01.30 |
산성비 게임 제작 (C++) (4) | 2022.01.23 |
뱀 게임 제작 (C++) (0) | 2022.01.22 |
오목 게임 제작 (C++) (0) | 2022.01.21 |