gpt4 book ai didi

java - 获取坐标时如何忽略fitviewport(LibGdx)上的黑条?

转载 作者:搜寻专家 更新时间:2023-11-01 02:43:26 24 4
gpt4 key购买 nike

我有一个无法解决的问题。我在游戏中使用 FitViewport 风格的舞台。

stage = new Stage(new FitViewport(SCREEN_WIDTH, SCREEN_HEIGHT));

但是当我在屏幕上出现黑条时尝试获取触地坐标时出现问题(如果屏幕的比例正确则没有问题)。

@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button)
{
xTouch = (int) (screenX * SCREEN_WIDTH/Gdx.graphics.getWidth());
yTouch = (int) ((SCREEN_HEIGHT) - screenY * (SCREEN_HEIGHT)/Gdx.graphics.getHeight());
}

我用这种方法得到的坐标,给出了屏幕上的位置,而不是我的游戏世界中的位置。 camera.unproject 做同样的事情。我的问题是,我怎样才能忽略黑条来获得我游戏世界中的位置?我花了很多时间搜索,但没有找到任何有用的解决方案。

最佳答案

将 Vector2 放在手边,这样您就不必每次都创建新的:

private Vector2 tmpVec2 = new Vector2();

然后使用viewport的unproject方法:

public boolean touchDown(int screenX, int screenY, int pointer, int   button) {
stage.getViewport().unproject(tmpVec2.set(screenX, screenY));
xTouch = tmpVec2.x;
yTouch = tmpVec2.y;
}

关于java - 获取坐标时如何忽略fitviewport(LibGdx)上的黑条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28330859/

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