2012-09-14 84 views
0

發現,開始一個新的意圖可能不通知GAMEOVER的用戶以正確的方式後,我現在runOnUiThread,Runnable接口和對話框struggeling ..顯示對話框中的遊戲用帆布時GAMEOVER

問題:如何我會在哪裏實現一個Dialog.show()來通知用戶遊戲已經結束?我正在執行一個鐵路賽車遊戲。在這個時候,當火車相撞發生遊戲時,我想在這裏顯示對話框。

我已經嘗試過使用runOnUiThread,Runnable和Async線程。無法弄清楚。 我想在MainGamePanel的碰撞發生方法中顯示對話框。

我有一個遊戲。活動AndroidGameActivity:

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

你有沒有想過實現你的遊戲引擎是這樣的:

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

dialog.show(); 

performAction(determineNextGameState()); 

投入的玩笑()所有的遊戲代碼,然後修改碰撞場,當用戶死亡?