libgdx系统原点在设备和仿真器上不匹配

时间:2013-12-17 08:56:17

标签: java android android-emulator libgdx

模拟器上的LibGDX在左下角显示原点(0,0),但我的设备位于左上角。请帮忙!

我修改了两个屏幕的教程作为我的程序,并使用font.draw()在屏幕上绘制字体作为菜单。字体绘制工作正常,但实现touchup + touchDown的{​​{1}}事件在设备和模拟器上提供不同的系统原点。

  

模拟器:Android 4.0.3等级15

     

设备:三星Galaxy Nexus,android 4.2.1。

我应该从LibGDX切换到OpenGL ES 2吗?

非常感谢!

最诚挚的问候。

1 个答案:

答案 0 :(得分:3)

点击 InputProcessor 中的触地事件为您提供您点击的实际像素,以及设备屏幕单位。从左上角开始。您应始终unproject触摸相机坐标。

  • 创建Vector3:

    Vector3 touchPoint = new Vector3();
    
  • 使用相机取消投影:

    @Override
    public boolean touchDown(int screenX, int screenY, int pointer, int button){
        cam.unproject(touchPoint.set(screenX, screenY, 0));
    
  • 然后使用touchPoint.x和touchPoint.y作为触摸坐标。