Dan*_*eno 0 java android libgdx
所以我使用这段代码来获取屏幕上的触摸坐标.
if(Gdx.input.justTouched()){
System.out.println("X= "+Gdx.input.getX()+"Y= "+Gdx.input.getY());
}
Run Code Online (Sandbox Code Playgroud)
但如果我有一台1280x960分辨率的设备,我有800x600的正交相机.
我该怎么做才能获得相机内部的坐标而不是设备触摸坐标
"例如,如果我在x轴上触摸屏幕的极限,我想获得800而不是1280"
正确的方法是使用相机从屏幕坐标给你世界坐标.
例如...
Vector3 mousePos = new Vector3(Gdx.input.getX(), Gdx.input.getY());
camera.unproject(mousePos); // mousePos is now in world coordinates
Run Code Online (Sandbox Code Playgroud)
这样,如果您更换相机(缩放/旋转/其他),那么一切仍然有效.
如果您正在使用视口,那么您应该使用vieport的unproject方法,因为它可能有其他问题需要处理(例如,允许在FitViewport中使用letterboxing).
注 - 在我给出的示例中,重用单个Vector3实例会更好,但我希望示例尽可能简单.
| 归档时间: |
|
| 查看次数: |
3002 次 |
| 最近记录: |