본문 바로가기

프로그래밍/Android

안드로이드 맞고 - class


OpenGL을 사용하여 게임을 만들면서 느낀것은 객체도 중요하지만 화면을 갱신하는 순서도 상당히 중요하다는 것이다.

객체를 디자인할 때,
게임매니저, 보드, 사람 세가지로 생각했다.
게임매니저는 게임을 진행하고 판단하는 일종의 딜러같은 역할이다.
보드는 카드를 나눠주고 받고 돌려주는 단순한 보드이다.
사람은 게임플레이어로 개인카드, 점수, 상태 등을 갖게 된다.

여기서 한가지 간과한것이 카드라는 객체이다.
카드라는 객체를 게임매니저가 모두 관리할 것인가, 보드와 사람이 소유할 것인가를 정해야하는데,
실세계를 반영하여 보드와 사람이 각각 소유하게 되고, 화면에 그리도록 하였다.
그런데 그리는 순서가 난감하게 되었다.
움직이고 있는 카드가 상대방이나 보드의 카드 아래 깔리는 경우가 발생한다.
게임매니저가 일괄 관리하는 것이 바람직해 보이는 부분이지만, 구조변경없이 해결가능성이 있는 것으로 보고있다.
draw를 2 phase로 나누어 고정과 움직이는 객체를 나눠서 그려면 되지 않을까? 어차피 한 프레임 안에서이니...


현재 class는 총 20개로 구성되어 있다.

[주요 Class]
MainActivity: Android Activity Class를 상속받은 main class

OpenGLRenderer: openGL ES receiver 역할을 하는 class, thread로 생성되어 frame당 화면 갱신
GameMenu: Game Menu 제공

GameManager: Game의 진행을 관장하는 class

Player: Player 객체, player 상태, 소유 card 정보 등을 관리

Board: Board 객체, 더미카드 정보, 바닥카드 정보 등을 관리하고 카드를 전달하는 매개체

DrawManager: openGL을 통해 실제로 화면을 draw하는 class

SoundManager: 사운드 재생관련 class
DataManager: 데이터 관리 class
GlobalDifinition: JAVA에서는 define을 사용할 수 없기 때문에 공통 변수를 Interface에 final로 정의


[부가 Class]
UNIT_CARD: Card 객체, Card , 종류, 뒤집힌 상태 등의 정보를 보존, UNIT_MOTION 상속
UNIT_MSGBOX: MsgBox 객체, 다양한 Message를 표시, UNIT_MOTION 상속
UNIT_MOTION: 모션을 설정할 수 있는 단위 객체, UNIT 상속
UNIT_TEXT: TEXT를 표시할 수 있는 단위 객체, UNIT 상속
UNIT: 기본단위 객체, 화면에 표시될 수 있는 유일한 class
ST_ANIMATION: 지정된 Animation을 표시하는 class
ST_IMAGE: Image 정보를 저장할 수 있는 구조체 class
ST_COLOR: Color 정보를 저장할 수 있는 구조체 class
ST_RECT: Rect 정보를 저장할 수 있는 구조체 class
ST_POINT: Point 정보를 저장할 수 있는 구조체 class
ViewBox: 획득한 카드를 자세히 볼 수 있는 View Box class, 크기가 동적이기 때문에 MsgBox사용불가




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

안드로이드 맞고 - DrawManager  (0) 2010.12.06
안드로이드 맞고 - SoundManager  (0) 2010.12.06
안드로이드 맞고 - DataManager  (0) 2010.12.06
안드로이드 맞고 - rule  (0) 2010.12.06
안드로이드 맞고 - intro  (0) 2010.12.06