携带整个物体移动物体时遇到麻烦

时间:2016-10-09 18:39:49

标签: java

我正在制作我的第一个Java应用程序,而且为了玩游戏,我试图让绿砖移动到另一个绿砖。我想让它沿x轴移动然后沿y轴移动。我遇到的问题是我在单击鼠标时调用的函数中更改了对象的sx值,但是即使是保持它的变量的位置,它自身也不会移动的对象#x; sx位置确实有所改变。

public class GameState {

//Players variables
private int xPos = 50;
private int yPos = 50;

public void update() {

}
public void render(Graphics g) {
    g.fillRect(0, 0, 640, 360);
    Entitys.playerEntity(g, xPos, yPos, TAGS.CONTROLLABLE);
    Entitys.walkingBoxEntity(g, 150, 150, TAGS.CLICKABLE);
}

public void mouseClicked(int mouseX, int mouseY) {
    if (mouseX > 150 && mouseX < 200) {
        if (mouseY > 150 && mouseY < 200) {
            int destination = 150;
            int moveDistance = destination -= xPos;
            if (moveDistance > 0) {
                for (int dM = 0; dM < moveDistance; dM++) {
                    xPos++;
                    System.out.println(xPos);
                }
            } else {
                for (int dM = 0; dM > moveDistance; dM--) {
                    xPos--;
                    System.out.println(xPos);
                }
            }
        }
    }
}

}

持有玩家实体x位置的变量是xPos。如果我进入更新功能并转到xPos ++,它会在屏幕上移动。如果我创建一个具有代码行的函数并在更新函数中调用它,它就会移动。但是当我尝试在mouseClicked函数中执行它时它不会移动。如果我打印出xPos的值,它确实会改变,但砖块不会移动。为什么砖块会移动到clickedMouse函数之外但不在函数内部?

0 个答案:

没有答案