게임 전체 클래스 UML을 보기 편하게 쪼개어 보았습니다.

(사정상 UML프로그램이 아닌 마인드맵 프로그램을 사용하였습니다.)

관계는 상속에 관련해서만 표현하였습니다.

각각의 클래스에 자세한 설명은 링크를 걸어 놓았습니다.



GameObject

- GameObject

   게임상에 등장하는 모든 오브젝트의 최상위 클래스 입니다. 

   BondingRadius, Execute 등 모든 오브젝트에 꼭 필요한 인터페이스를 제공합니다.


- Mover (자세히)

  게임 상에서 빈번히 생성되고, 삭제되는 오브젝트들의 베이스 클래스입니다.

   PoolingManager의 메모리 관리를 받는 파생클래스들의 베이스로서 필요한 함수들의 인터페이스를 제공합니다. 


- Player

  플레이어 클래스입니다. 캐릭터의 생명이나 FSM 등을 소유합니다.


- Planet

  행성 클래스입니다. 


- HealthUI (자세히)

- ScoreUI

- MyButton (자세히)

- BonusUI

  UI 클래스들입니다. 




State

- State (자세히)

  게임상의 오브젝트들은 AI상태를 구현하기 위해 State가 제공하는 인터페이스를 상속받아 상태를 정의합니다.

   게임의 AI는 Stage -> (Player, Bullet)의 계층 구조를 가집니다. (Stage의 상태에 따라 Player, Bullet의 상태가 변화합니다.)


- BulletState (자세히)

  Bullet들의 AI 상태입니다. 표기는 BulletState로 했지만 NormalState, BonusTimeState, MagnetItemState 가 존재합니다.

 

- PlayerState (자세히)

  Player의 AI 상태입니다. 역시 표기는 PlayerState로 했지만 NormalState, GiantState 가 존재합니다.


- StageState (자세히)

  현 Stage의 AI 상태입니다. 역시 표기는 StageState로 했지만 NormalStageState, BonusTimeStageState 가 존재합니다.




& Singleton


- UIManager 

  UI를 key값으로 저장하고 관리합니다.


- AudioManager

  기존의 AudioEngine을 랩핑한 클래스입니다. Audio의 동시 플레이 카운트를 제어하기위해 정의하였습니다.


- ItemManager 

  현재 플레이어가 획득한 아이템이 무엇인지 저장하고 타이머를 관리하도록 정의 되어 있습니다.


- ObjectManager (자세히)

  게임상의 모든 오브젝트의 Execute 및 안전한 Remove를 보장하기 위해 정의 되었습니다.


- PoolingManager (자세히)

  게임상에서 오브젝트의 생성과 삭제가 빈번하게 일어나기 때문에 그 리스크를 줄이고 메모리관리를 효율적으로 하기 위해 정의 하였습니다.




'All > Project' 카테고리의 다른 글

ObjectManager  (0) 2016.04.12
PoolingManager  (0) 2016.04.12
게임 개요  (0) 2016.04.11
MemoryPooling_2  (0) 2016.03.15
MemoryPooling_1  (0) 2016.03.15

+ Recent posts