gpt4 book ai didi

java - 尽管 LibGDX 中的相机旋转,如何使玩家沿固定方向移动?

转载 作者:太空宇宙 更新时间:2023-11-04 11:40:39 25 4
gpt4 key购买 nike

我在 LibGDX 中制作了一个 2D 游戏,玩家移动系统非常简单:

if (Gdx.input.isKeyPressed(Input.Keys.W))
player.setPosition(player.getPosition().x, player.getPosition().y + 100 * delta);

A、S 和 D 键的原理相同。

但是现在,我有一个“醉酒模式” - 因此,世界上有一个相机旋转,所以只是:

camera.rotate(MathUtils.random(-50, 50) * delta);

但是如果我在相机旋转时按W键,玩家就不再垂直向上移动。所以,如果旋转是例如180°,玩家直线向下移动,这实际上是很合逻辑的。

那么有没有一种方法可以让玩家总是移动,按W时向上移动,按D时向右移动等,无论当前旋转如何?

提前谢谢

最佳答案

尝试在同一方向上使用玩家的偏差。

final int PLAYER_SPEED = 100;
float angle = MathUtils.random(-50, 50) * delta; // btw, delta is Gdx.graphics.getDeltaTime()?
camera.rotate(angle);
if (Gdx.input.isKeyPressed(Input.Keys.W)) {
float xOffset = PLAYER_SPEED * sin(toRadians(angle)) * delta;
float yOffset = PLAYER_SPEED * cos(toRadians(angle)) * delta;
player.setPosition(player.getPosition().x + xOffset, player.getPosition().y + yOffset);
}

对于其他方向,必须有其他三角公式。

关于java - 尽管 LibGDX 中的相机旋转,如何使玩家沿固定方向移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42822956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com