libgdx - 在圆形路径中移动物体

时间:2015-09-28 22:07:11

标签: vector libgdx box2d

我正在尝试围绕另一个身体进行圆周运动。从现在开始,我在两个身体之间有一个DistanceJoint,但我的问题是如何找到正确的方向来施加我的力量。

我试过这个功能,这显然不起作用:

public void updateCircular(float speed, Vector2 center){
    Vector2 radius = center.sub(this.body.getPosition());
    Vector2 force = radius.rotate90(1).nor().scl(speed);
    this.body.setLinearVelocity(force.x, force.y);
}

center是我的静态体的锚点,函数由我的移动体的类调用,实际上我的想法是在渲染部分调用这个方法,所以每次我旋转向量的两个体之间的距离为90度,找到切线向量。

这似乎是一个坏主意,那么如何才能在每一帧中找到切线向量,以便将第一个对象移动到第二个对象周围?

1 个答案:

答案 0 :(得分:1)

每帧都在修改Vector2中心,你需要复制。

public void updateCircular(float speed, Vector2 center){
    Vector2 radius = center.cpy().sub(this.body.getPosition());
    Vector2 force = radius.rotate90(1).nor().scl(speed);
    this.body.setLinearVelocity(force.x, force.y);
}
相关问题