본문 바로가기

프로그래밍/Android

안드로이드 맞고 - GameMenu



크게 본다면 GameMenu와 GameManager로 나뉠 수 있다.
각각 하나의 화면뷰를 담당하고 관리한다. (메뉴화면과 게임화면)
상세한 처리는 Draw Manager, Sound Manager, Data Manager를 통해 은닉한다.


GameMenu는 3화면으로 구성된다. (메인, 기록, 설정)

MainMenu - 시작, 기록, 설정 메뉴를 제공
시작 = 게임시작
기록 = 레벨, 최고기록, 승/패기록을 확인할 수 있는 확인, 게임오버시 머니 충전
설정 = 볼륨설정, 치트모드(바닥패를 바꿀수 있는 기능


[UI]
물론 허접한 그래픽이지만, 인터넷에서 열심히 찾아서 따고 붙여서 만들었다.
상용으로 할려면 이미지 작업은 다시 해야할 듯하다.

<메인메뉴> 세가지 메뉴제공, 종료는 back key로 동작
게임오버시 '시작'할 수 없고, 비 아저씨가 기록에서 충전하라고 말해줌ㅋㅋ


<기록메뉴> 현재레벨(1~5)과 최고점수, 승/패 정보를 확인가능하다. 레벨에 따라 판돈(과 AI수준, 미구현)이 달라짐.
충전이 필요할 경우 승/패 정보아래 충전 버튼이 표시되어 충전을 가능하게 함. 충전시 레벨 1 다운.


<설정메뉴> 음량설정(볼륨키로도 가능) 및 치트모드 오토모드 설정이 가능하다.
치트모드는 바닥패 변경 및 상대패 열람이 가능하고, 오토모드는 자동으로 둘이 게임을 진행하는 모드이다 (테스트 용)



메뉴는 이미지 처리와 터치영역 처리, 데이터 처리만 하면 되기 때문에 간단하다.
때문에, 모든 메뉴를 하나의 클래스(GameMenu.java)에서 처리한다.


[치트모드]
1. 먹은 패를 펼쳐서 열람하는 기능이 있는데 치트모드에서는 컴퓨터의 패도 펼쳐서 열람이 가능하다.
2. 뒤집는 패를 변경할 수 있다. 맨 위 3장의 패의 순서를 변경할 수 있다. (쪽, 뻑, 따닥, 쓸 등의 테스트에 용이하다)

[오토모드]
화면 터치 없이 컴퓨터 끼리 무한으로 게임을 진행한다.
에이징 테스트 및 개발시 고려하지 못한 버그를 자동으로 찾아낼 수 있다.
유저코드를 100%커버하진 않지만 흐름상 오류를 많이 찾아냈다.