我制作了一个类似于 15 谜题的游戏。Node 类存储棋盘状态、它的父节点和它的深度。我在动画解决问题时遇到了麻烦。由于在调用 Thread.sleep 时按下按钮时会调用此方法,所以 gui 会冻结,直到最终节点的状态显示在屏幕上。我怎么能在从一种状态到另一种状态的转换之间延迟一段时间的动画?
public void animateSolution(Node node)
{
Stack<Node> solution = new Stack<>();
while (node != null)
{
solution.push(node);
node = node.getParent();
}
solution.pop();
while (!solution.isEmpty())
{
Node current = solution.pop();
try
{
Thread.sleep(750);
}
catch (InterruptedException ie)
{
ie.printStackTrace();
}
moveBuilder(current);
}
}