java - libgdx 系统源在设备和模拟器上不匹配

标签 java android android-emulator libgdx

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

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

emulator: Android 4.0.3 level 15

device: Samsung Galaxy Nexus, android 4.2.1.

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

非常感谢!

最诚挚的问候。

最佳答案

InputProcessor 中的 touchup 和 touchdown 事件为您提供您单击的实际像素以及设备屏幕单位。从左上角开始。您应该始终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 作为触摸坐标。

关于java - libgdx 系统源在设备和模拟器上不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20629744/

相关文章:

java - 缓存执行器端点未显示

java - 停止 Eclipse 更新类路径和设置

android - 如何在单独的线程中监听 HashMap 值的变化使其可流动?

android - Google Play 商店上的智能应用更新 : how does it work?

android - Genymotion 模拟器无法在 Windows 8.1 中启动

java - 使用 Java/Jackcess 从加密的 Access .mdb 中读取

java - Android 上的 Rubygems/Packagist 等效项是什么?

eclipse - 使用 Eclipse 创建 AVD : Memory Options, 内部存储、SD 卡

android - React Native WebStorm Emulator 无法启动 - 错误无法启动模拟器。原因 : No emulators found as an output of `emulator -list-avds`

java - 如何在Windows 64位操作系统中使用apache ant和eclipse运行java程序?