Проблема с определенным кодом ...? - PullRequest
0 голосов
/ 23 июля 2011

Я создаю программу (на Java), которая при нажатии кнопки запуска создает линию (созданную путем создания овала, который перемещается, но не очищает экран), который отскакивает от стен JWindow. У меня есть три файла: основной с методом main, другой с кодом ounceThreadFrame и последний с кодом шара. Все это работает, за исключением того, что линия не отскакивает от левой стороны экрана. Как я должен изменить его так, чтобы он отскакивал от левой стороны? Дайте мне знать, если вам нужен остальной код. Этот следующий код является кодом метода шарика 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);
}

Ответы [ 2 ]

4 голосов
/ 23 июля 2011

Это проблема:

if (x<0){
    x=0;
    x= dx;
}

Это установка x дважды, а не изменение dx. В каждом другом блоке вы меняете положение, а затем меняете направление. Я подозреваю, что вы хотите:

if (x < 0) {
    x = 0;
    dx = -dx;
}
0 голосов
/ 23 июля 2011

Проблема в утверждении x= dx;

Я думаю, вы знаете, что это должно означать.Это просто опечатка.Бывает все время.

...