在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;
答案 0 :(得分:0)
在LibGDX中,Vector2和Vector3都具有lerp()函数,而不是将位置加在一起。
您应该能够执行以下操作以获得所需的结果:
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的方法来实现更复杂的插值。