2011-04-02 40 views
0

我正在遊戲板,我想顯示遊戲板動畫, 動畫是落下這樣一個對象,如何使用Thread.sleep顯示簡單的放置動畫?


時間= 0
○○○
○○○
○○○
○○○
時間= 1
●○○
○○○
○ ○
○○○
時間= 2
●○○
●○○
○○○
○○○
時間= 3
●○○
●○○
●○ ○
○○○
時間= 4
●○○
●○○
●○○
●○○


for (int row = 0; row < ROW_MAX; row++) { 
     for (int col = 0; col < COLUMN_MAX; col++) { 
      TempBoard[row][col]= hollow; 
     } 
} 
drawBoard(TempBoard); 
Thread.sleep(1000); 
TempBoard[0][column] = solid; 
drawBoard(TempBoard); 
Thread.sleep(1000); 
TempBoard[1][column] = solid; 
drawBoard(TempBoard); 
Thread.sleep(1000); 
TempBoard[2][column] = solid; 
drawBoard(TempBoard); 
Thread.sleep(100); 
TempBoard[3][column] = solid; 
drawBoard(TempBoard); 
Thread.sleep(1000); 

但我無法得到我想要的東西,它顯示時間爲4直接錯過了時間= 0-3什麼問題的步驟?我該如何解決它?或者任何其他簡單的方法來做到這一點?謝謝。
的drawBoard方法:

public void drawBoard(Disc[][] updateBoard) { 
    Disc[][] tempBoard = updateBoard; 
    for (int row = 0; row < ROW_MAX; row++) { 
     for (int col = 0; col < COLUMN_MAX; col++) { 
      if (tempBoard[row][col] == hollow) { 
       //jbtBoard[row][col].setIcon(hollowImg); 
       System.out.println(hollow); 
      } else if (tempDisc[row][col] == solid) { 
       //jbtBoard[row][col].setIcon(solidImg); 
       System.out.println(solid); 
     } 
    } 
} 

然而,當我運行該代碼,輸出是這樣的:


時間= 0,1,2,3
○○○
○○○
○○○
○○○
時間= 4
●○
●○○
●○○
●○○


+1

請顯示'drawBoard'的代碼。 – xappymah 2011-04-02 07:27:22

+0

沒有什麼特別的mymethod drawBoard,只是一個2d for循環顯示遊戲板 – kafter2 2011-04-02 07:37:06

+0

這是什麼情況?搖擺? Android的? – 2011-04-02 07:38:39

回答

5

如果你是在UI線程上做這個(在一個回調),像你說的過程也會運行,但是在UI線程會只能顯示你的代碼完成後給出的繪圖命令 - 這實際上意味着顯示版本4.

+1

你不應該通過睡眠來阻止用戶。它會阻止任何屏幕更新。使用計時器。 – Eilistraee 2011-04-02 07:49:21