Как ограничить размеры изменения размера окна в libGDX?

#java #libgdx

#java #libgdx

Вопрос:

Я хочу ограничить минимальные размеры моей игры до 170×267 на рабочем столе. В настоящее время я использую этот код:

 @Override
public void resize(int width, int height) {
    gamePort.update(width, height);
    if (Gdx.app.getType() == ApplicationType.Desktop) {
        if (width < 170)
            Gdx.graphics.setWindowedMode(170, height);
        if (height < 267)
            Gdx.graphics.setWindowedMode(width, 267);
    }
}
 

Тем не менее, это устанавливает положение X и Y окна в центр и иногда приводит к тому, что окно игры становится пустым.

Что я могу сделать, чтобы установить минимальный размер для моего игрового окна?

Ответ №1:

Вы можете переключиться с серверной части LWJGL на серверную часть LWJGL3, которая изначально поддерживает эту функцию. Чтобы переключиться, измените файл build.gradle в корне вашего проекта. Измените эту строку:

 compile "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion"
 

Для

 compile "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion"
 

И измените на Lwjgl3ApplicationConfiguration и Lwjgl3Application в вашем DesktopLauncher. Затем вы можете установить минимальный размер окна в конфигурации для вашей игры:

 public class DesktopLauncher {
   public static void main (String[] arg) {
      Lwjgl3ApplicationConfiguration config = new Lwjgl3ApplicationConfiguration();
      config.setWindowSizeLimits(170, 267, 9999, 9999);
      new Lwjgl3Application(new MyGdxGame(), config);
   }
}
 

Комментарии:

1. Программа запуска рабочего стола отлично работает с зависимостью lwjgl3, но, похоже, я не могу импортировать Lwjgl3 в DesktopLauncher. Я попробовал новый проект libgdx и, похоже, тоже не могу импортировать lwjgl3.

Ответ №2:

Вы можете легко установить размер экрана для рабочего стола, установив width и height . Вы должны открыть папку на рабочем столе и нажать на Main.java файл и установите

 cfg.width=170;
cfg.height=267;
 

Таким образом, вы можете легко установить ширину и высоту экрана для рабочего стола.
Вот пример кода. Пожалуйста, пройдите через это.

 public class Main {
    public static void main(String[] args) {
        LwjglApplicationConfiguration cfg = new LwjglApplicationConfiguration();
        cfg.title = "myGame";
        cfg.useGL30 = false;
        cfg.width =1280;
        cfg.height = 800;

        new LwjglApplication(new copterAdventure(), cfg);
    }
}
 

Комментарии:

1. Это не ограничивает размер изменения размера окна.