2011-04-02 4 views
0

Je fais un plateau de jeu et je voudrais montrer l'animation de plateau de jeu, L'animation est un objet tomber vers le bas comme celui-ci,Comment utiliser Thread.sleep pour afficher une animation simple?


temps = 0
○○○
○○○

○○○ ○○○

temps = 1 ● ○○

○○○ ○ ○

○○○ temps = 2

● ○○ ● ○○

○○○ ○○○
temps = 3

● ○○ ● ○○ ● ○


○○○ temps = 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); 

Mais je ne peux pas obtenir ce que je veux, il indique le temps = 4 directement et a raté les étapes dans le temps = 0-3 quel est le problème? Comment puis-je le réparer? Ou tout autre moyen simple de le faire? Je vous remercie.
Procédé 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); 
     } 
    } 
} 

Cependant, quand j'exécuter le code, la sortie est comme suit:


temps = 0,1,2,3

○○○ ○○○

○○○ ○○○

temps = 4 ● ○
● ○○
● ○○
● ○○


+1

Afficher le code de 'drawBoard' s'il vous plaît. – xappymah

+0

rien de spécial dans mymethod drawBoard, juste un 2d pour la boucle montrent le plateau de jeu – kafter2

+0

Quel est le contexte de cela? Balançoire? Android? –

Répondre

5

Si vous faites cela (moins d'un rappel) sur le thread d'interface utilisateur, la procédure se déroulera comme vous avez dit, mais le fil de l'assurance chômage seulement être capable d'afficher les commandes de dessin que vous donnez une fois que votre code est terminé - ce qui signifie effectivement afficher la version 4.

+1

vous ne devriez pas bloquer l'interface utilisateur par le sommeil. cela empêchera toute mise à jour de l'écran. Utilisez des minuteurs. – Eilistraee

Questions connexes