2012-09-14 4 views
0

새로운 의도를 시작하는 GameOver의 사용자에게 통지 할 수있는 올바른 방법으로하지 않을 수 있음을 발견 한 후, 지금 runOnUiThread,의 Runnable 및 대화 상자와 struggeling 해요 ..표시 대화 gameover

질문 : Dialog.show()를 구현하여 게임이 종료되었다는 것을 사용자에게 알리는 곳은 어디입니까? 레일 경주 게임을 구현 중입니다.이 시간에 열차 충돌이 발생하면 여기에 대화를 표시하려고합니다.

저는 runOnUiThread, Runnable 및 Async 스레드를 실험했습니다. 그것을 알아낼 수 없습니다. MainGamePanel의 충돌 발생 방법에 대화 상자를 표시하고 싶습니다.

나는 게임을 가지고있다. 활동 AndroidGameActivity는 :

while (!collision) 
{ 
    playGame(); 
    doAnimation(); 
    checkCollision(); 
} 

dialog.show(); 

performAction(determineNextGameState()); 

사용자가 죽었을 때 충돌 필드를 수정 한 다음에 PlayGame()에있는 모든 게임 플레이 코드를 넣고 :

private static final String TAG = AndroidGame.class.getSimpleName(); 
public static Vibrator v; 
private GameDatabaseOperations gameDatabaseOperations; 
private int currentDate; 
private int todayDate; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    try{ 
     currentDate = Calendar.getInstance().get(Calendar.DATE); 
     gameDatabaseOperations = new GameDatabaseOperations(this); 
     gameDatabaseOperations.createWriteModeDatabase(); 
     Cursor crDate = gameDatabaseOperations.fetchTodayDate(); 
     startManagingCursor(crDate); 
     if(crDate!= null && crDate.getCount() >0){ 
      crDate.moveToFirst(); 
      todayDate = crDate.getInt(0); 
     } 

     if(currentDate != todayDate){ 
      gameDatabaseOperations.updateTodayDefaultScore(0); 
      gameDatabaseOperations.updateTodayDate(currentDate); 
      Cursor cr1Date = gameDatabaseOperations.fetchTodayDate(); 
      startManagingCursor(cr1Date); 
      if(cr1Date!= null && cr1Date.getCount() >0){ 
       cr1Date.moveToFirst(); 
       todayDate = cr1Date.getInt(0); 
      } 
     } 
     gameDatabaseOperations.closeDatabase(); 

    } 
    catch(Exception e){ 
     e.printStackTrace(); 
    } 

    FrameLayout fl = new FrameLayout(this); 
    setContentView(fl); 
    LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    LinearLayout pause = (LinearLayout) inflater.inflate(
    R.layout.pausebutton, null); 
    fl.addView(new MainGamePanel(this)); 
    fl.addView(pause); 
    v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); 

    } 

답변

0

은이 같은 게임의 엔진을 구현하는 생각?