如果没有其他没有运行

时间:2015-04-21 07:07:47

标签: java if-statement

我有一些用于测试精灵的代码,我想用鼠标移动。单击屏幕时,精灵必须移动到单击的点。但是有些奇怪的事情正在发生。

我在一个名为Controls的线程中运行它,它扩展到Thread并实现MouseListener,并使用以下代码,sprite移动。

public void run() {
    while(true){
        if((int)point.getX() > player.getX()){
            while((int)point.getX() > player.getX()){
                player.moveX(1);
            }
        }
        else{
            System.out.println("Nah!");
        }
    }
}

一切都按预期工作,但如果我这样做:

public void run() {
    while(true){
        if((int)point.getX() > player.getX()){
            while((int)point.getX() > player.getX()){
                player.moveX(1);
            }
        }
    }
}

它不起作用。如果我这样做:

public void run() {
    while(true){
        if((int)point.getX() > player.getX()){
            while((int)point.getX() > player.getX()){
                player.moveX(1);
            }
        }
        else{

        }
    }
}

它也不起作用。我不知道发生了什么,有什么想法吗?

1 个答案:

答案 0 :(得分:-2)

当您运行并行代码时,您应该给其他线程一些时间来完成他们的工作:

public void run() {
    while(true){
        if((int)point.getX() > player.getX()){
            while((int)point.getX() > player.getX()){
                player.moveX(1);
            }
        }
        sleep(20 /* ms */);
    }
}