java - LibGDX - 查看当前设备是否支持给定的屏幕分辨率

标签 java libgdx lwjgl

所以我正在为我的程序编写一些工具来处理基本配置,从数据文件中读取设置,然后使这些设置成为 Activity 配置。我还构建了一个错误检查机制,以确保设置的格式正确并具有有效值。

我想查看当前设备支持的分辨率是多少,我想将其与数据文件中指定的分辨率进行比较。在我缺少的 libGDX 中是否有一种简单的方法可以做到这一点?我知道 LWJGL 有一个函数可以为您提供一组支持的分辨率,但我不想重新发明轮子。

我正在寻找类似的东西: boolean isValidResolutionForDevice(int 宽度, int 高度)

我必须自己写吗?或者这已经存在了吗?在我看来,它是一个非常有用的函数,它一定被写入了某个地方的库中。

最佳答案

实际上有一种方法可以做到这一点。主要的 com.badlogic.gdx.Application 接口(interface)有一个 getGraphics() 方法,并且 com.badlogic.gdx.Graphics 类从具有 getDisplayModes() 方法,该方法返回 DisplayMode[]DisplayMode 基本上是这样的(删除了注释和构造函数):

public class DisplayMode {
    /** the width in physical pixels **/
    public final int width;
    /** the height in physical pixles **/
    public final int height;
    /** the refresh rate in Hertz **/
    public final int refreshRate;
    /** the number of bits per pixel, may exclude alpha **/
    public final int bitsPerPixel;
}

然后您可以浏览这些以查看是否支持相关分辨率。

唯一令人讨厌的消息是因为 getGraphics() 在 Application 对象上,似乎直到 之后您才能查询可用的图形模式Application 对象(例如 LwjglApplication)已创建。因此,您可能会选择一个任意分辨率(例如 1024x768),启动游戏,然后在实际不支持原始分辨率的情况下立即切换到支持的分辨率(并且可以选择让用户在设置菜单中进行选择)。


我遇到了我相信你所指的方法,org.lwjgl.opengl.Display.getAvailableDisplayModes(),并且......老实说,我只是将这个供你使用案件。你几乎只是用一个简单的内部条件来迭代它。不完全是重新发明任何东西。

关于java - LibGDX - 查看当前设备是否支持给定的屏幕分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23588219/

相关文章:

java - 在 LibGdx 中绘制网格线的健康方法

java - LWJGL使用 "java <class file>"命令时找不到类错误

java - 天空盒不显示纹理

java - 在 Tomcat 中重新部署应用程序时发生内存泄漏

bundle - Launch4J - 为 Windows 7 64 位计算机 bundle JRE

java - 通过命令行jdb运行java程序执行正确,但作为java命令行执行时失败

java - 如何管理多设备(XBox 360 Controller )LWJGL

java - 如何根据某些规则重构 XML 文件?

libgdx 中的 json 文件

Android GDX 游戏检测到正确的形状?