2012-03-16 2 views
3

보드 게임 Cloud 9의 안드로이드 버전을 구현 중입니다. 나는 게임, 안드로이드 애플 리케이션 (1-2 안녕하세요 세계 애플 리케이션을 제외하고) 또는 심지어 전에 GUI를 가진 프로그램 (CLI를 많이 했어), 그리고 디자인에 관한 몇 가지 질문을했습니다.안드로이드 보드 게임 구현 디자인

게임은 차례 기반이므로 여기에는 실시간 고려 사항이 없으므로 최선의 방법이 궁금합니다. 이 게임은 플레이어가 결정해야하는 매우 단순한 2-3 가지 옵션으로 구성되어 있습니다. 우선 텍스트 기반으로 만들려고합니다. 즉, 게임에 "로그"가있는 TextView가 있고 인간 선수는 결정을 내려야 만한다. 그가 플레이 할 수있는 옵션이있는 2-3 개의 버튼이 주어진다. 게임은 여러 라운드와 레벨로 구성됩니다.

GUI가없고 AI 플레이어가있는 게임 "코어"를 구현하기 시작했습니다. 그런 다음 인간 플레이어, GUI 등을 허용하는 방법을 알아 내려고 노력했습니다. 현재의 설계 아이디어는 게임 내 다른 이벤트에 대해 알리는 GameEventListener 클래스입니다 (라운드 시작, 라운드 종료, 특정 플레이어가 특정 작업을 수행함, 등등), 그리고 그것을 구현하는 활동을 그것을 그리기/어떻게 화면에 쓸 수 있습니다.

그러나 이것이 최선의 접근 방식이고, 안드로이드 부분이 있어야하는 방법인지 모르겠습니다. 구현 된 것입니다 (예를 들어, 일부 이벤트가 끝나면 플레이어가 "계속"버튼을 사용하여 게임을 계속하기 전에 무엇을했는지 볼 수 있습니다.) 버튼을 누를 때까지 기다리는 방법은 무엇입니까? 청취자 기능, 게임 계속). 진행 방법에 대한 제안이 있으십니까?

답변

0

게임이 차례를 기반으로하기 때문에 GameEventListener와 같은 디자인이 괜찮다고 생각합니다. 기본적으로 이러한 종류의 GUI는 이벤트에 응답하여 구현할 수 있습니다. 각 UI 구성 요소에 리스너를 할당 할 수 있습니다. 예 : button.setOnClickListener (사용자의 수신기 클래스);

다른 버튼의 경우 각각 다른 리스너 클래스를 만들 수 있으며 하나의 GameEventListener로도 수집 할 수 있습니다.

button.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v){ 
          //do your operations here(e.g. get input, update UI) 
        }}); 
+0

계층 구조가 있습니다. UI 구성 요소가 게임의 이벤트에 응답하거나 그 반대의 경우도 마찬가지입니까? –

+0

"계속하려면 버튼을 누르기 만하면됩니다"와 같은 것을 구현하려면 어떻게해야합니까? –

1

당신은 GUI 여기 내 Tetrads 드롭 게임에서 좀 걸릴 수 있습니다 나의 접근 방식 중 일부는 http://code.google.com/p/tetrads-drop-lite/ 그것은 테트리스입니다 : 작업이 복잡하지 않은 이벤트에 반응하는 경우, 우리는 심지어 익명 클래스를 사용할 수 있습니다 복제하여 인터넷을 통해 다른 플레이어와 게임 할 수 있습니다. 일부 GUI 코드에 대한 도움이 필요한 경우 Ed Burnette의 "Hello, Android"는 좋은 책입니다.

그것은 당신이 디자인하는 것과 매우 유사 업데이트되었습니다.

이 패키지는 내가 당신의 표현에 의해 조금 혼란 스러워요

-com.aunndroid.Engine (handling game logic) 
-com.aunndroid.View (managing 2D Views) 
-com.aunndroid.Tolk (communication between deivces) 
+0

답안에서 당신의 접근 방식을 자세히 설명해 주시겠습니까? –