2012-02-03 3 views
0

저는 현재 학교 프로젝트 용 Android 게임을 개발 중이며 게임이 끝나지 않아 영원히 계속됩니다. 나는 시간 의존적 인 게임으로 만들고 싶다. 플레이어가 일정 시간 동안 살아남 으면 게임이 종료되고 "축하합니다"라고 말하면 한 번 눌렀을 때 게임을 종료하는 대화 상자가 표시됩니다. AlertDialog.Builder 클래스에 대해 알고 있고, finish() 메소드로 액티비티를 닫을 수있는 곳을 보았습니다. 그래서 내 게임 클래스에서 이것을 구현하는 방법을 정교하게 만드는 사람은 매우 도움이 될 것입니다. 지금까지 모든 노력이 이루어졌습니다. 게임 충돌.Android 게임 끝 부분에 대화 상자 표시

답변

0
Runnable run = new Runnable(){ 
    public void run(){ 
      displayDialog(); 
    } 
}; 
this.runOnUiThread(run); 


private void displayDialog() { 
    new AlertDialog.Builder(ProvaActivity.this).setPositiveButton("finish", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int whichButton) { 
      finish(); 
     } 
    }).show(); 

} 
+0

특정 조건이 충족되면 GameView 클래스에서 새 클래스로 전환하는 방법이 있습니까? 그 새 클래스에서 그냥 대화 상자를 만드시겠습니까? –

+0

당신이 필요로하는 것을 할 수있는 방법이 있다는 것은 분명합니다.하지만 코드가 없으면 정확히 무엇을하고 있는지, 왜 충돌 하는지를 아는 것은 정말로 어렵습니다. @ broody sais는 많은 의미를 갖습니다. – jsaye

0

충돌하는 이유는 다른 스레드에서 UI 이벤트를 트리거하려고하기 때문일 수 있습니다. 게임 스레드에서 UI로 메시지를 페리하기 위해 핸들러를 구현해야합니다. 액티비티 클래스에 Handler를 구현하고이 핸들러를 게임 스레드에 전달하고 게임이 끝나면 handler.sendEmptyMessage (GAME_END)를 수행합니다. Handler 함수에서 "msg"를 켜서 어떤 메시지를 받았는지 (GAME_END, QUIT 등) 확인하고 여기서 AlertDialog를 호출 할 수 있습니다.