Java 将实体移动到特定点[Box2D,Libgdx]

Java 将实体移动到特定点[Box2D,Libgdx],java,libgdx,box2d,Java,Libgdx,Box2d,我试图做一个简单的磁铁效果,当我的角色靠近一枚硬币时,这应该会移动到他的位置 我有这个: if(Mycharacter.position.x +2 >= position.x) //position = coin position { body.setTransform(Mycharacter.position.x, Mycharacter.position.y, 0); } 这是接近我想

我试图做一个简单的磁铁效果,当我的角色靠近一枚硬币时,这应该会移动到他的位置

我有这个:

if(Mycharacter.position.x +2  >= position.x)    //position = coin position
                {

            body.setTransform(Mycharacter.position.x, Mycharacter.position.y, 0);
                 }
这是接近我想要的,但我需要能够看到我的角色硬币的运动

我对Box2d和Libgdx还很陌生,所以如果可能的话,让它变得非常简单,伙计们,这无助于我对物理的理解。提前感谢。

您可以这样做:

1. Compute vector from you to coin (vx = coin.x - player.x, same for y)
2. Compute the vectors's distance (using MathUtils.sqrt(vx*vx+vy*vy))
3. If distance is shorter than magnet range, then reduce the distace.
4. recompute new vector from player to coin (vx *= (newDistance/oldDistance))
5. update coin'S position
我找到了答案:

if("Any condition")
{
  body.setLinearVelocity((Character.position.x - position.x) * Velocity, (Character.position.y - position.y)* Velocity);
}

提醒大家,这只是实现我想要的最简单的方法。我相信有更合适的方法可以做到这一点。

也许这更适合游戏开发?这个问题几乎每周都会出现。。。这可能会有所帮助:这将是一个非Box2D解决方案。使用Box2D时,步骤4将向车身施加力,其中步骤5将由Box2D计算。