Thread.sleep似乎非常不一致

时间:2018-01-25 22:44:55

标签: java animation sleep

下面这个方法试图将一个精灵移动到一个"块"迷宫,我需要每隔一段时间等待一次"步骤"然后再次移动并重新绘制,但这种方法只会导致那个人永远移动,然后传送到所需的目的地。

我的睡眠方法有问题吗?

public void rightClick() {
    while(select.x != mouseConverter(mouseX) && select.y != mouseConverter(mouseY)) {
        int[][] path = select.ai().getPath(arena, mouseConverter(mouseX), mouseConverter(mouseY), blocked);
        select.move(path[0][0], path[0][1]);
        repaint();
        try {
            Thread.sleep(1000);
        } catch(InterruptedException ex) {
            System.out.println("Inturrupted");
            Thread.currentThread().interrupt();

        }
    }
}

这可能需要大量澄清,如果这非常令人困惑,请原谅我。

1 个答案:

答案 0 :(得分:1)

好的,非常感谢@VGR关于AWT / Swing的问题,尽管最后我认为这是我的比较器错误。这是更新的代码:

select

在我更新代码以使用计时器之后,如果X值或Y值与精灵的X或Y值相同,我遇到了无法移动的问题。经过一个小时的工作,主要问题不仅是Timer,还有我的比较器错误,它们共同努力解决了这个问题。