如何让图片左右反弹?

时间:2013-10-02 00:29:00

标签: java bounce

我真的不明白代码中的哪个区域会让角色反弹到右侧而不是数字。

    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) {
        }
    }
}
}

1 个答案:

答案 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.
        }
    }