1

我的正交相机被初始化为尺寸 540x960(我的 HTC One 屏幕的尺寸)。但是,当我在另一部屏幕更大的手机上尝试它时,每当我点击移动我的纹理时,我触摸的位置和纹理移动到的位置都会出现偏移。我应该使用不同的尺寸技术吗?比如通过 Gdx.graphics.getWidth() 和 .getHeight() 来调整大小?

从下面的评论:

@Override         
public boolean touchDown(float x, float y, int pointer, int button) {
    xpos = x;       
    return false;       
}
4

1 回答 1

1

您只能获得屏幕的 x 位置。要将其转换为世界空间(游戏的坐标系),您需要将其放入 Vector3 并从相机中取消投影,如下所示:

@Override         
public boolean touchDown(float x, float y, int pointer, int button) {
    Vector3 touchPoint = new Vector3(x, y, 0); //0 is arbitrary since this is in 2D
    camera.unproject(touchPoint); //now touchPoint contains the world position of the touch
    xpos = touchPoint.x;      
    ypos = touchPoint.y; //if you need it. 
    return false;       
}
于 2014-07-16T03:11:23.330 回答