gpt4 book ai didi

java - 渲染和触摸输入之间的 libgdx 坐标系差异

转载 作者:搜寻专家 更新时间:2023-10-30 21:16:41 28 4
gpt4 key购买 nike

我有一个呈现 PNG 图像的屏幕(BaseScreen 实现了 Screen 接口(interface))。单击屏幕时,它会将角色移动到触摸的位置(用于测试目的)。

public class DrawingSpriteScreen extends BaseScreen {
private Texture _sourceTexture = null;
float x = 0, y = 0;

@Override
public void create() {
_sourceTexture = new Texture(Gdx.files.internal("data/character.png"));
}

.
.
}

在屏幕渲染过程中,如果用户触摸了屏幕,我会获取触摸的坐标,然后使用这些坐标来渲染角色图像。

@Override
public void render(float delta) {
if (Gdx.input.justTouched()) {
x = Gdx.input.getX();
y = Gdx.input.getY();
}

super.getGame().batch.draw(_sourceTexture, x, y);
}

问题是绘制图像的坐标从左下角位置开始(如 LibGDX Wiki 中所述),触摸输入的坐标从左上角开始。所以我遇到的问题是我单击右下角,它会将图像移动到右上角。我的坐标可能是 X 675 Y 13,触摸时它会靠近屏幕顶部。但是字符显示在底部,因为坐标从左下角开始。

为什么是什么?为什么坐标系颠倒了?我是否使用了错误的对象来确定这一点?

最佳答案

为了检测碰撞,我使用了 camera.unproject(vector3)。我将 vector3 设置为:

x = Gdx.input.getX();     
y = Gdx.input.getY();
z=0;

现在我在 camera.unproject(vector3) 中传递这个 vector 。使用此 vector 的 xy 绘制您的角色。

关于java - 渲染和触摸输入之间的 libgdx 坐标系差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16514152/

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