我正在制作游戏板,我想展示游戏板动画, 动画是一个物体像这样往下掉,
时间=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);
但是我无法得到我想要的,它直接显示 time=4 并且错过了 time=0-3 中的步骤,这是什么问题?我该如何解决?或者有什么其他简单的方法可以做到吗?谢谢。
绘图板方法:
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
●○○
●○○
●○○
●○○
最佳答案
如果您在 UI 线程上执行此操作(在一个回调内),该过程将按您所说的那样运行,但 UI 线程将只能在您的代码完成后显示您给出的绘制命令 - 这实际上意味着显示版本 4。
关于java - 如何使用 Thread.sleep 显示简单的掉落动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5521827/