Java 如何使对象反向移动?

Java 如何使对象反向移动?,java,Java,我需要让船在出界时朝相反的方向移动(8,-8) 船移动,但将其流速添加到当前位置。如果船撞到边界,它会掉头向相反方向移动 } public void move(int direction) { this.position = position + direction; this.velocity = velocity + position; if ( position > 5) { direction = - 1; }

我需要让船在出界时朝相反的方向移动(8,-8)

船移动,但将其流速添加到当前位置。如果船撞到边界,它会掉头向相反方向移动

    }

public void move(int direction)
{
    this.position = position + direction;
    this.velocity = velocity + position;
    if ( position > 5)
    {
        direction = - 1;

    }
    else if ( position < -5)
    {
        direction = + 1;
    }


    }
}
}
公共无效移动(内部方向)
{
这个位置=位置+方向;
速度=速度+位置;
如果(位置>5)
{
方向=-1;
}
否则,如果(位置<-5)
{
方向=+1;
}
}
}
它不起作用。。任何帮助都会很好


谢谢:)

我会将代码修改为:

public void move(int direction)
{    
    if ( position > 5)
    {
        direction = - 1;    
    }
    else if ( position < -5)
    {
        direction = + 1;
    }
    this.position = position + direction;
    this.velocity = velocity + position;
}
public void移动(int方向)
{    
如果(位置>5)
{
方向=-1;
}
否则,如果(位置<-5)
{
方向=+1;
}
这个位置=位置+方向;
速度=速度+位置;
}
首先将方向设置为+/-1(根据您的逻辑),然后再更改位置

您当前的操作方式-只有在您执行“移动”操作后,更改
方向的值(这是一个局部变量)并完成方法的执行(然后删除此局部变量的值),才不会产生任何影响

顺便说一下:

  • 您没有“覆盖”位置==5的情况(可能是故意的?)
  • 如果要在方法内部设置方向,为什么还要麻烦在方法的签名中传递它呢

  • 方向不应该是
    1
    -1
    。加法或减法可能不会改变方向,反而会减慢或加快移动速度……@MadProgrammer要么我不理解你的评论,要么(即使它是正确的)与我的答案无关。不,你完全按照我说的做,我把
    =-1
    看作
    -=
    =+1
    看作
    +=
    -我的宝贝你可以看看,这是简单的动画。。。