如何在java中连续左右移动球?

假设下面的方法与一个在窗口中创建圆形的主方法连接起来,我希望这个圆圈向左移动大约100个像素,然后向右移动100个像素,依此类推.

我无法弄清楚代码来做到这一点.

  private void moveBall() 
{
    boolean moveRight = true;

    if(moveRight == true)
    {
        x = x + 1;
    }
    else
    {
        x = x - 1;
    }

    if(x == 300)
    {
        moveRight = false;
    }




}

最佳答案 球不断向右移动的原因是因为当它击中if语句以将moveRight设置为false时,它会在方法开始时将其重置为true.如果你想让它像你认为的那样工作,你需要将moveRight拉成一个类变量.

怎么样这样试试呢?

//set the moveRight variable as a class variable
private boolean moveRight = true;

private void moveBall() {
    //move right or left accordingly
    x = moveRight ? x + 1 : x - 1;

    //if x == 300 we want to move left, else if x == 100 im assuming you want to move right again
    if (x == 300) {
        moveRight = false;
    } else if(x == 100){
        moveRight = true;
    }
}
点赞