gpt4 book ai didi

java - 根据玩家位置旋转纹理

转载 作者:行者123 更新时间:2023-12-01 12:05:02 25 4
gpt4 key购买 nike

我正在制作一款 2d 游戏,其中包括一架飞机通过导弹与宇宙飞船作战,我希望宇宙飞船根据玩家位置进行旋转,以便它们始终以“头”面向玩家。玩家可以在 y 和 x 方向上自由移动。玩家和宇宙飞船有一个 Vector2 pos 变量,对应于它们的实际位置。任何帮助将不胜感激。

这是我的(现在正在运行)代码:

    public void render(SpriteBatch sb) {
Vector2 temp = new Vector2();
float angle = temp.set(entityManager.getPlayer().pos).sub(pos).angle();
TextureRegion region = new TextureRegion(texture);
sb.draw(region, pos.x, pos.y, 0, 0, texture.getWidth(), texture.getHeight(), 1.0f, 1.0f,angle+90);
}

敌人的飞船会旋转,但它们并不总是面向玩家: enter image description here

最佳答案

@dwn 的答案在数学上是正确的,但是当您处理 LibGDX 框架时,最好使用 native 工具。

如果您将敌人和玩家的位置存储在 Vector2 中,那么您可以更方便地进行计算。例如,要确定特定敌人和玩家之间的角度:

Vector2 enemyPos;
Vector2 playerPos;
Vector2 temp;

float angle = temp
.set(playerPos)
.sub(enemyPos)
.angle();

这将为您提供您想要的东西。当然,最好将 temp vector 保存在公共(public)空间的某个位置,以便在如此众多的计算中使用它。你最好检查一下其他方便的Vector2方法,它会极大地方便你的生活。

祝你好运。

关于java - 根据玩家位置旋转纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27671908/

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