下面这个方法试图将一个精灵移动到一个"块"迷宫,我需要每隔一段时间等待一次"步骤"然后再次移动并重新绘制,但这种方法只会导致那个人永远移动,然后传送到所需的目的地。
我的睡眠方法有问题吗?
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();
}
}
}
这可能需要大量澄清,如果这非常令人困惑,请原谅我。
答案 0 :(得分:1)
好的,非常感谢@VGR关于AWT / Swing的问题,尽管最后我认为这是我的比较器错误。这是更新的代码:
select
在我更新代码以使用计时器之后,如果X值或Y值与精灵的X或Y值相同,我遇到了无法移动的问题。经过一个小时的工作,主要问题不仅是Timer,还有我的比较器错误,它们共同努力解决了这个问题。