본문 바로가기
프로그래밍/공부

[Game] DirectX11 모작 - 포켓몬스터 - 1

by Sik.K 2023. 4. 2.

모작 게임은 완성이 되었지만 늦게 나마 어떻게 진행이 되었는지 써보려고 한다.

 

포켓몬들은 서로 다른 포켓몬들이 존재하지만 한 종류의 포켓몬은 여러 객체로 존재할 수 있게 포켓몬이라는 부모 클래스를 두고 그 밑으로 각각 종류별로 자식 클래스들을 두었다.

 

 

각 포켓몬은 트레이너 클래스가 가지고 있는 deque 배열에 들어간다. deque로 작성한 이유는 포켓몬은 순서가 자주 바뀌고 그 순서는 앞뒤 상관 없이 변하기 때문에 vector 보다는 deque가 더 작성이 편하다고 판단했기 때문이다.

 

이 deque 배열은 Pokemon이라는 부모 클래스로 업캐스팅 된 객체들을 통해 관리를 하고 있어서 공통된 클래스를 상속 받은 다른 클래스들을 관리할 수 있다.

 

또한 포켓몬은 최대 4개의 스킬을 가질 수 있고 이 스킬들 또한 하나의 배열로 관리하기 위해 Skill이라는 부모 클래스를 상속 받는 클래스들을 vector로 관리를 하고 있다.

 

 

전투가 끝나면 포켓몬은 경험치를 얻고 경험치가 일정 수준으로 올라가면 레벨이 증가한다. 특정 레벨에 도달하면 진화를 하게 되는데 이때 기존 포켓몬이 가지고 있는 Evolution이라는 함수가 실행되고 이 함수는 진화 전 포켓몬의 정보를 토대로 진화 후의 포켓몬의 클래스를 동적할당한다.

 

포켓몬의 핵심이라고 생각하는 배틀 씬을 먼저 구현하였는데 확실히 액션 보다는 구조가 중점이 되어야 하는 부분이라서 구조를 파악하지 못하면 몇 번이고 헤매게 된다.

 

코드 작성 순서 또한 잘 생각해야 했는데 기존의 작업을 다시 갈아엎어야 하는 상황이 몇 번 발생했었다. 때문에 작업 순서를 확실하게 잡고 가는 것이 중요했다.

 

이번 글은 여기서 마무리하고 다음에는 타일맵과 이동에 관한 부분과, 세이브 로드에 관한 부분에 대한 포스팅이 될 것이다.

'프로그래밍 > 공부' 카테고리의 다른 글

[C++] Lvalue & Rvalue  (0) 2023.04.22
[C++] 바이트 패딩  (0) 2023.04.20
[Game] DirectX11 모작 - 포켓몬스터  (0) 2023.02.07
[Game] DX 2D 게임 프로젝트 - 러시아워  (0) 2023.01.25
[Game] FSM  (0) 2023.01.22

댓글