Java 物体不动?
我正在制作一个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
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);
}