Java 在LibGDX中使玩家向前移动(面向其前方)

Java 在LibGDX中使玩家向前移动(面向其前方),java,libgdx,Java,Libgdx,我目前正在LibGDX中开发一个游戏。你可能已经看到另一个帖子了。我已经解决了这个问题,但现在,我面临着这样一个事实:我似乎无法让我的球员朝着它移动——总是向上移动,而不是指向它的前方。我尝试了一切,从使用Box2D到我在网上找到的建议使用trig函数的答案。以前有人这样做过吗?对象的移动通常是通过设置其x左、右和y上下坐标来完成的。 要想知道如何操纵它们,你需要知道他正在努力的方向。 在自上而下的游戏中,它可能是一个向量2,一个规格化向量,一个长度为1的向量,它给出了x和y方向的相对运动。相反

我目前正在LibGDX中开发一个游戏。你可能已经看到另一个帖子了。我已经解决了这个问题,但现在,我面临着这样一个事实:我似乎无法让我的球员朝着它移动——总是向上移动,而不是指向它的前方。我尝试了一切,从使用Box2D到我在网上找到的建议使用trig函数的答案。以前有人这样做过吗?

对象的移动通常是通过设置其x左、右和y上下坐标来完成的。 要想知道如何操纵它们,你需要知道他正在努力的方向。 在自上而下的游戏中,它可能是一个向量2,一个规格化向量,一个长度为1的向量,它给出了x和y方向的相对运动。相反,在platformer中,它只能是一个布尔值,用于定义是面向右侧还是左侧。然后,上/下运动由跳跃和其他向上力以及重力来定义

我认为在你的情况下,这是一个自上而下的游戏,所以你需要一个矢量2。 旋转角色时,需要将矢量2旋转到。为了确保,Vector2在操作后始终被规范化。 在“更新”或“渲染”方法中,应按如下方式设置角色的x和y坐标:

player.x = direction.x*delta*speed;
player.y = direction.y*delta*speed;
其中delta是Gdx.Graphics.getDeltaTime,speed是播放器的移动速度


希望有帮助

这个方向是指玩家的位置吗?@furyfish否,玩家。x和玩家。y是位置,方向是一个标准化的长度==1向量,给出x和y中的移动百分比,这是玩家正在观看的位置。如果您在左侧观察,则方向.x为-1,方向.y为0。如果你观察的是向上45°,方向x是0.5,方向y也是0.5