【问题标题】:Get right coordinates on touchdown on android device在 android 设备上获取正确的坐标
【发布时间】:2014-10-22 15:44:19
【问题描述】:

我正在 LIBGX 中编写一个按钮。它在桌面上运行良好,但是当我在 android 上启动它时,我必须在不同的地方触摸才能触发它(我使用的是真正的 Android 设备,而不是 AVD)这是一张描述它的图片:

在 TouchDown 代码下方:

Gdx.input.setInputProcessor(new InputAdapter () {
       public boolean touchDown (int x, int y, int pointer, int button) {
          // your touch down code here
         Vector3 coords = new Vector3(x, y, 0);
         camara.unproject(coords);

          if(coords.x >= 52 && coords.x<=129 && coords.y >= 158  && coords.y<=253){
              shoot(1);
          }
          return true; // return true to indicate the event was handled
       }
    });

在没有 Vector3 的情况下我也遇到了同样的问题,我开始使用它是因为有人建议它,但并没有解决太多。这是相机的声明:

camara = new OrthographicCamera();
camara.setToOrtho(false, 800, 480);

我进行了一些研究,但找不到正确的解决方案,而且我发现相机(正交、现实世界等)非常令人困惑。我会继续挖掘,这花了几个小时,不得不提出这个问题。我希望有人能指出我正确的方向。

【问题讨论】:

  • 不确定我是否可以直接帮助您,但我可以告诉您,与计算机相比,Android 上的 x 和 y 坐标有些倒置。 x 和 y 坐标从左上角开始,而不是像其他操作系统那样从左下角开始。请参阅:stackoverflow.com/questions/11483345/… 以获得更多解释(抱歉无法直接从文档中找到任何内容)。
  • @Darwind 非常感谢,我会看的,谢谢你的评论

标签: android libgdx coordinates projection orthographic


【解决方案1】:

请注意,Android 屏幕中的原点(0,0) 位于屏幕的左上角。因此,当您向y axis 添加值时,对象会向下移动,而减去值时,对象会向上移动。

在 Android 设备中:

 Origin
 |
 V
 *-------------------------------
 | ----> X axis                  |
 | |                             |
 | |                             |
 | V Y-axis                      |
 |                               |
 |                               |
 |                               |
 |                               |
 |                               |
 |                               |
 |                               |
 |                               |
 |                               |
 |                               |
 |                               |
 |                               |
 |                               |
 |                               |
 |                               |
 |                               |
  -------------------------------

在台式机中:

 --------------------------------------------------------------
 |                                                             |
 |                                                             |
 |                                                             |
 |                                                             |
 |                                                             |
 |                                                             |
 |                                                             |
 |                                                             |
 |                                                             |
 |                                                             |
 |                                                             |
 |                                                             |
 |                                                             |
 |                                                             |
 |                                                             |
 |                                                             |
 | ^ Y axis                                                    |
 | |                                                           |
 | |                                                           |
 | ----> X axis                                                |
 *-------------------------------------------------------------
 ^
 | 
 Origin   

可能的历史:

当电视机用作屏幕时,屏幕空间计算就开始了。电视的光栅枪也是从左上角角开始的,所以这被认为是原点。

更多参考可以参考here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-24
    • 2020-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 2016-12-09
    相关资源
    最近更新 更多