假设下面的方法与一个在窗口中创建圆形的主方法连接起来,我希望这个圆圈向左移动大约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;
}
}