你如何让一个物体向相反的方向移动?

时间:2013-09-18 06:44:17

标签: java

我需要让船在相反的方向上移动,当它越过界限时(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;
    }


    }
}

它不起作用..任何帮助都会很棒。

谢谢:)

1 个答案:

答案 0 :(得分: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;
}

首先将方向设置为+/- 1(根据您的逻辑),然后才改变位置!

你目前的方式 - 只有在你执行“移动”之后才改变direction(这是一个局部变量)的值并完成方法的执行(然后是删除此局部变量的值。)

顺便说一下:

  1. 你不是“覆盖”位置== 5的情况(也许它是故意制作的?)
  2. 如果您在方法中设置方向 - 为什么还要在方法的签名中传递它?