【问题标题】:LibGdx TouchInput gives strange numbers for position on the screenLibGdx TouchInput 为屏幕上的位置提供奇怪的数字
【发布时间】:2014-03-18 17:51:08
【问题描述】:

有一个小问题。无法理解如何解决。 我正在我的 LibGdx 游戏中实现用户触摸输入。我的 screenSize 是下一个:宽度 = 408 和高度 = 272; 当我尝试打印从方法 touchDown 获得的值时,我会得到屏幕上位置的绝对奇怪的数字。它们甚至可以大于 1000... 如果我的 screenSize 是 408x272,怎么可能?

@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
System.out.println(screenX + "     " + screenY);    //For some reasons this gives completely absurd numbers for the positions on the screen.
return true;
}

如果您能帮助我,我们将不胜感激。我想我想念一些简单明了的东西……谢谢。

【问题讨论】:

    标签: android input libgdx


    【解决方案1】:

    我唯一能想到的是您的屏幕尺寸不是您认为的那样 - 您是否可能将其与定义您的相机以查看 408x272 区域混为一谈?屏幕上的窗口大小实际上是 408x272 像素吗?

    如果这是问题所在,您需要这样做 - 假设您使用的是 OrthographicCamera

    Vector3 v3 = new Vector3(screenX, screenY, 0);
    cam.unproject(v3);
    

    这会将v3.xv3.y 设置为您要查找的内容。

    如果这不是问题,我会尝试了解奇怪位置与预期位置之间的关系 - 它的行为是否像屏幕更大?是翻了吗?如果您设法观察到这一点,可能会更容易弄清楚。

    【讨论】:

    • 哦,先生,谢谢您如此详细的回答。我会努力做到这一点!
    • 没问题 :) (另外,提示:左边有一个勾号用于接受 anwsers..)
    【解决方案2】:

    很多人会使用 Vector3 来存储接触点,并会使用Gdx.input 来获取 X 和 Y 坐标。查看Superjumper 了解更多详情,特别是updateRunning 函数。

    【讨论】:

    • 谢谢你的提示,我想我现在明白该往哪个方向移动了:)谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-29
    • 2014-04-07
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多