Java 物体不动?

Java 物体不动?,java,object,keyboard,move,velocity,Java,Object,Keyboard,Move,Velocity,我正在制作一个Java游戏,但我有一个问题。我的物体没有移动: 下面是一些代码: public void keyPressed(KeyEvent e){ int key = e.getKeyCode(); for (int i = 0; i < handler.object.size(); i++){ GameObject temp = handler.object.get(i); if (temp.getC() == Char.StarP

我正在制作一个Java游戏,但我有一个问题。我的物体没有移动:

下面是一些代码:

public void keyPressed(KeyEvent e){

    int key = e.getKeyCode();
    for (int i = 0; i < handler.object.size(); i++){
        GameObject temp = handler.object.get(i);
        if (temp.getC() == Char.StarPlayer && Stardust.keyEnabled){
            System.out.println("test");
            System.out.println(temp.getY());
            if (key == KeyEvent.VK_W) temp.setY(-5);
            if (key == KeyEvent.VK_A) temp.setVelY(5);
            if (key == KeyEvent.VK_S) temp.setVelX(-5);
            if (key == KeyEvent.VK_D) temp.setVelX(5);
        }
    }
}
将速度添加到实际x值以使其移动。它以前工作过,但由于某种原因,现在不工作了

请尽快提供帮助;) -Blockhead7360

编辑:夹具不会打断这一点(我不认为)。同样的事情以前也有过,但由于某种原因,现在不起作用了

我想这是一个夹子,如果你需要的话:

public static int clamp(int var, int min, int max){
    if (var >= max){
        return var = max;
    }else if (var <= min){
        return var = min;
    }else return var;
}
公共静态int钳位(int-var、int-min、int-max){
如果(变量>=最大值){
返回var=max;

}else if(var问题似乎是您更新了x和y,但之后立即使用
clamp()
将它们设置为其他值


不知道什么是
climp()
我不能肯定这就是问题所在,但似乎很有可能。

你能告诉我们tick()在哪里被调用吗?climp()是什么做什么?@svasa tick每1/60秒被调用一次。钳子会阻止它离开屏幕。我不认为钳子会打扰它。这以前是有效的,但由于某种原因,现在在这个类中不起作用。@Kironide
public static int clamp(int var, int min, int max){
    if (var >= max){
        return var = max;
    }else if (var <= min){
        return var = min;
    }else return var;
}
public void tick(){
    x += velX;
    y += velY;

    y = Stardust.clamp(y, 0, Stardust.HEIGHT - 64); // This (might) be your problem
    x = Stardust.clamp(x, 0, Stardust.WIDTH - 32);
}