gpt4 book ai didi

java - 将实体移动到带有像素的位置 - libgdx - vector 数学

转载 作者:行者123 更新时间:2023-12-01 09:39:29 24 4
gpt4 key购买 nike

所以我让我的子弹到达一个点并走得更远。只是它的表演真的很奇怪。就像它认为 0,0 位置在左上角而不是左下角一样。

这是代码:

float speed = 100;

Vector2 direction;
Vector2 thisPos = new Vector2(getX(), getY());
Vector2 mousePos;

public Bullet(){
super();
setSprite(sprite);
setX(0); setY(0);
float dx = Gdx.input.getX() - getX();
float dy = Gdx.input.getY() - getY();
mousePos = new Vector2(Gdx.input.getX(), Gdx.input.getY());
direction = new Vector2(dx, dy);
//sprite.setRotation(direction.angle(thisPos));
direction.nor();
}

public void update(){
Vector2 dirAd = new Vector2(direction);
thisPos.x += dirAd.x * speed * Gdx.graphics.getDeltaTime();
thisPos.y += dirAd.y * speed * Gdx.graphics.getDeltaTime();
setPosition(thisPos.x, thisPos.y);
super.update();
}

我希望有人能帮助我解决我做错的事情。

最佳答案

Gdx.input.getX() 和 getY() 根据定义确实将左上角视为 0,0。从 getX() 方法:

“屏幕原点是左上角。”

您可能需要研究相机的 unproject 方法,该方法获取屏幕输入坐标并将其转换为“世界”空间。

关于java - 将实体移动到带有像素的位置 - libgdx - vector 数学,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38578496/

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