计算2D向量之间的恒定移动率

时间:2019-02-25 11:02:57

标签: java c# vector libgdx

在2D游戏中,我需要在屏幕上的2个点之间移动角色。我在另一个项目中使用C#中的3D向量进行了此操作,但是不确定如何在2D和Java中执行相同的操作。

在Java中对此进行了尝试,但未作为有效语法通过

Vector2 step = pos.add(moveTarget.sub(pos)).clamp(0,1) * speed * delta;

C#中的3D计算:

Vector3 newPos = transform.position + (targetPos - transform.position).normalized * playerSpeed * Time.deltaTime;

1 个答案:

答案 0 :(得分:0)

在LibGDX中,Vector2和Vector3都具有lerp()函数,而不是将位置加在一起。

https://libgdx.badlogicgames.com/ci/nightlies/docs/api/com/badlogic/gdx/math/Vector2.html#lerp-com.badlogic.gdx.math.Vector2-float-

您应该能够执行以下操作以获得所需的结果:

Vector2 start = new Vector2(0, 0);
Vector2 end = new Vector2(100, 100);

public void render(float delta) {
    start.lerp(end, delta);
}

此外,LibGDX还具有一个Interpolation类,您可以通过基本类lerp()函数静态地使用from的方法来实现更复杂的插值。

https://github.com/libgdx/libgdx/wiki/Interpolation