我正在制作一个程序(在java中),当您按下开始按钮时,它会生成一条从JWindow墙壁弹起的线(通过制作一个 move 但不清洁屏幕的椭圆形来创建)。我有三个文件:一个包含 main 方法的主文件,另一个包含 ounceThreadFrame 代码的文件,最后一个包含 ball 代码的文件。一切正常,只是线条不会从屏幕左侧反弹。我应该如何改变它,使其从左侧弹起?如果您需要其余代码,请告诉我。下面的代码是球的 move() 方法的代码。
Graphics g=box.getGraphics();
g.fillOval(x, y, xsize, ysize);
x += dx;
y += dy;
Dimension d=box.getSize();
if (x<0){
x=0;
x= dx;
}
if (x+xsize>=d.width){
x=d.width-xsize;
dx= -dx;
}
if (y<0){
y=0;
dy= -dy;
}
if(y+ysize>=d.height){
y=d.height-ysize;
dy= -dy;
}
g.fillOval(x,y,xsize,ysize);
}
最佳答案
这就是问题:
if (x<0){
x=0;
x= dx;
}
即设置 x
两次,并且不更改 dx
。在每个其他 block 中,您都会改变位置,然后反转方向。我怀疑你想要:
if (x < 0) {
x = 0;
dx = -dx;
}
关于java - 某些代码有问题...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6798741/