当前位置: 首页 > 知识库问答 >
问题:

如何使用al设备中相同的分辨率在LibGdx中获得触摸坐标?

许远航
2023-03-14

所以我用这个代码来获取屏幕上触摸的坐标。

 if(Gdx.input.justTouched()){
            System.out.println("X= "+Gdx.input.getX()+"Y= "+Gdx.input.getY());
        }

但是如果我有一个分辨率为1280x960的设备,我有一个800x600的正交相机。

我可以做什么来获取摄像机内部的坐标,而不是设备触摸坐标

“例如,如果我在x轴上触摸屏幕的限制,我希望得到800而不是1280”

共有1个答案

柴嘉禧
2023-03-14

正确的做法是使用相机从屏幕坐标给你世界坐标。

例如

    Vector3 mousePos = new Vector3(Gdx.input.getX(), Gdx.input.getY());
    camera.unproject(mousePos); // mousePos is now in world coordinates

这样,如果你改变相机(缩放/旋转/任何东西),那么一切都将继续工作。

如果您使用的是Viewport,那么您应该改用Viewport的unproject方法,因为它可能有其他问题要处理(例如,允许FitViewport中的信箱)。

注意-在我给出的示例中,最好重用单个Vector3实例,但我希望示例尽可能简单。

 类似资料:
  • 我正在从事Android游戏开发,我是一名新手。我想开发一款屏幕分辨率免费的游戏。如果我知道如何使用libgdx库捕捉Android设备的屏幕分辨率,那就足够了。在谷歌搜索之后,我在不同的网站上阅读了下面的代码,但它不适用于libgdx。 除此之外,我还使用了以下网站上给出的技术,该技术使用了“正交摄影机”课程来解决问题,但也不适用于我。 http://www.java-gaming.org/in

  • 我提出了一个请求:https://www.googleapis.com/youtube/v3/channels?part=brandingSettings 然而,我收到的分辨率(512x288)低于YouTube频道。如何获得与YouTube频道完全相同的分辨率?

  • 问题内容: 如何获得以像素为单位的屏幕分辨率(宽x高)? 我正在使用JFrame和Java swing方法。 问题答案: 你可以使用该方法获取屏幕尺寸。 在多显示器配置中,你应该使用以下命令: 如果要在DPI中获得屏幕分辨率,则必须使用上的getScreenResolution()方法Toolkit。

  • 问题内容: 获得监视器分辨率(最好是在元组中)的最简单方法是什么? python 屏幕 分辨率 问题答案: 在Windows上: 如果使用高分辨率屏幕,请确保你的python解释器为HIGHDPIAWARE。

  • 问题内容: 我只是想知道我是否有可能在Pygame中获得显示器的分辨率,然后使用这些尺寸创建一个窗口,以便启动程序来检测显示器的分辨率,然后将窗口自动适合全屏显示。 我目前正在使用该窗口。我知道您可以使用来获得包括显示器分辨率在内的视频信息,但是如何提取这些值,然后在???中使用它们呢? 在此先感谢Ilmiont 问题答案: 您可以使用: 该文件说: current_h,current_w:当前视

  • 我是LIBGDX游戏开发的新手,我遇到了我的第一个问题。我已经创造了9个。使用纹理打包器修补可拉伸(按钮)。这种抽绳可用于低密度和超高密度筛网,质量相同。 如果我用桌面上的可绘制项目运行我的项目,那么显示的图像就可以了,大小也非常完美。如果我在低密度的android设备上运行这个项目,drawable会变得巨大(几乎占屏幕的一半)。而且,如果我在超高密度Android设备上运行这个项目,按钮就会变