我真的不明白代码中的哪个区域会让角色反弹到右侧而不是数字。
public void exercise1e() {
PaintWindow pw = new PaintWindow();
Random rand = new Random();
ImageIcon image = new ImageIcon("C:/Users/char.jpg");
int width = pw.getBackgroundWidth();
int height = pw.getBackgroundHeight();
int dx = -2;
int dy = 0;
int x = 250;
int y = rand.nextInt(height-100);
while(true) {
pw.showImage(image, x, y);
PaintWindow.pause(20);
x += dx;
y += dy;
if(x<0) {
dx = -dx;
if (x>0) {
}
}
}
}
答案 0 :(得分:0)
如果到达边界然后将方向更改为相反的方向,则dx = -dx将导致该效果。 如果达到左边界限,则应该应用条件..当x <= 0时,当达到右边界时x> = =宽度
if(x<=0 || x>=width ) {
dx = -dx;
}
现在将图像的位置重置为x。否则你只是增加和减少这个数字。 像:image.setLocation(x,y),我无法确定,因为我不知道你用它来渲染它。
您当前的if语句存在逻辑矛盾。
if(x<0) {
Only if x is less than 0 evaluate the next if...
if (x>0) {
If x is less than 0 but also is greater than 0, understand the universe.
}
}