Докуметация Cтарт Статьи Форум Лента Вход
Не официальное русскоязычное сообщество
Главная
    Документация jMonkeyEngine
        jMonkeyEngine Уроки и Документация
            Документация для уверенных пользователей
                Параметры отображения приложения jME3

Параметры отображения приложения jME3

Опубликованно: 16.04.2017, 15:11
Последняя редакция, Andry: 05.07.2017 23:52

Каждый класс, который расширяет jme3.app.SimpleApplication, имеет свойства, которые можно настроить, в объекте com.jme3.system.AppSettings.

Настройте параметры приложения в main(), прежде чем вызывать app.start() для объекта приложения. Если вы изменяете настройки отображения во время выполнения, например, в simpleInitApp(), вы должны вызвать app.restart(), чтобы они вступили в силу.
Другие параметры среды выполнения описаны в SimpleApplication.

Пример кода

Задайте параметры игры (называемой MyGame или как вы называли свой экземпляр SimpleApplication) в методе main () перед запуском игры:

public static void main(String[] args) {
  AppSettings settings = new AppSettings(true);
  settings.setResolution(640,480);
  // ... другие свойства, см. ниже
  MyGame app = new MyGame();
  app.setSettings(settings);
  app.start();
}

Установите логическое значение в конструкторе AppSettings равным true, если вы хотите оставить настройки по умолчанию. Установите этот параметр в значение «false», если вы хотите, чтобы приложение загружало пользовательские настройки из предыдущих запусков. В любом случае вы можете настроить индивидуальные настройки.

Этот пример переключает настройки на полноэкранный режим, когда игра уже запущена. Затем он перезапускает игровой контекст (а не всю игру), который применяет измененные настройки.

public void toggleToFullscreen() {
  GraphicsDevice device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
  DisplayMode[] modes = device.getDisplayModes();
  int i=0; // Примечание: обычно их несколько, давайте выберем первое
  settings.setResolution(modes[i].getWidth(),modes[i].getHeight());
  settings.setFrequency(modes[i].getRefreshRate());
  settings.setBitsPerPixel(modes[i].getBitDepth());
  settings.setFullscreen(device.isFullScreenSupported());
  app.setSettings(settings);
  app.restart(); // Перезапустите контекст, чтобы применить изменения
}

Свойства

Таблица A: Видео

Параметры Настройки Описание По умолчанию
setRenderer(AppSettings.LWJGL_OPENGL1)
setRenderer(AppSettings.LWJGL_OPENGL2)
setRenderer(AppSettings.LWJGL_OPENGL3)
Переключение Video Renderer на OpenGL 1.1, OpenGL 2 или OpenGL 3.3. Если ваша видеокарта не поддерживает все функции OpenGL2 (UnsupportedOperationException: GLSL и OpenGL2 необходимы визуализации LWJGL), то вы можете заставить ваш SimpleApplication использовать совместимость с OpenGL1. (Тогда вы по-прежнему не можете использовать специальные функции OpenGL2, но по крайней мере ошибка исчезнет, и вы сможете продолжить с остальными.) OpenGL 2
setBitsPerPixel(32) Установка глубины цвета.
1 bpp = черно-белый, 2 bpp = серый,
4 bpp = 16 цветов, 8 bpp = 256 цветов, 24 или 32 bpp = «trueecolor.
24
setFramerate(60) С какой частой кадров в секунду движок должен попытаться обновить фрейм(отдельный кадр). Обычно, как правило, 60 кадров в секунду. Может быть и ниже (30), если вам нужно освободить процессор для других приложений. Нет смысла устанавливать его на более высокое значение, чем частота экрана! Если частота кадров падает ниже 30 кадров в секунду, зрители начинают замечать волны или мерцание. -1 (unlimited)
setFullscreen(true) Установите значение true, чтобы развернуть игровое окно на весь экран; Вам следует назначить клавишу, которой вы вызовете app.stop (), чтобы выйти из полноэкранного режима изящно (по умолчанию: escape).
Установите значение false, чтобы играть в игру в обычном окне.
False (windowed)
setHeight(480), setWidth(640)
setResolution(640,480)
Два эквивалентных способа установки разрешения экрана. 640×480 pixels
setSamples(4) Установите для мультисэмплинга значение 0, чтобы выключить антиалиасинг (более жесткие грани, быстрее).
Установите мультисэмплинг на 2 или 4, чтобы активировать сглаживание (более мягкие края, может быть медленнее).
В зависимости от вашей видеокарты вы можете установить мультисэмплинг на более высокие значения, такие как 8, 16 или 32 сэмпла.
0
setVSync(true)
setFrequency(60)
Установите вертикальную синхронизацию в значение true, чтобы время буфер кадра совпадал с частотой обновления экрана. VSync предотвращает уродование предметов от разрыва картинки, но немного медленнее; Рекомендовано для сборки релиза.
Установите VSync в false, чтобы отключить вертикальную синхронизацию (более быстрое, но возможны разрывы картинки отображаемых предметов на экране); Могут оставаться деактивированными во время разработки или для более медленных ПК.
false
60 fps
setStencilBits(8) Задайте количество битов трафарета.
Это значение имеет значение только при использовании буфера трафарета. Укажите 8, чтобы указать 8-битный буфер трафарета, укажите 0, чтобы отключить буффер трафарета.
0 (disabled)
setDepthBits(16) Устанавливает количество используемых бит глубины.
Число битов глубины определяет точность буфера глубины. Чтобы увеличить точность, укажите 32 бита. Чтобы уменьшить точность, укажите 16 бит. На некоторых платформах 24 бита могут не поддерживаться, в этом случае укажите 16 бит.
См. Раздел Что такое буфер глубины? И Z-буферизация для более глубокого объяснения.
24

Таблица B: Ввод

Параметры Настройки Описание По умолчанию
setUseInput(false) Реагирование на пользовательский ввод с мыши или клавиатуры. Деактивируйте, если вам не нужно управление, например в случаее проигрывания 3D сut-scene. true
setUseJoysticks(true) Активировать дополнительную поддержку джойстика false
setEmulateMouse(true) Включить или отключить эмуляцию мыши для устройств с сенсорным экраном. Установка этого значения в true преобразует нажатия на сенсорный экран для щелчков, а жесты пальцем осуществляют прокрутку на сенсорным экраном через события мыши. false
setEmulateMouseFlipAxis(true,true) Отклик по оси X или Y (или обе) для эмулируемой мыши. Установите первый параметр в true, чтобы был отклик по оси x, а второй — для отклика по оси y. false,false

Таблица C: Звук

Параметры Настройки Описание По умолчанию
setAudioRenderer(AppSettings.LWJGL_OPENAL) Переключатель Audio Renderer. В настоящее время существует только один вариант. OpenAL
setStereo3D(true) Включить 3D-стерео. Эта функция требует аппаратной поддержки от драйвера GPU. См. Четырехбуферную буферизацию. В настоящее время технические средства большинства пользователей не поддерживает это, так что вы можете игнорировать это. false

Таблица D: Branding(фирменное оформление)

Параметры Настройки Описание По умолчанию
setTitle(«My Game») Эта строка будет отображаться в строке заголовка, если только окно не полноэкранное. «jMonkey Engine 3.1-stable»
setIcons(new BufferedImage[]{
ImageIO.read(new File(» «)), …});
Это задает маленький значок приложения в заголовке приложения (не используется в MacOS?). Вы должны указать значок в различных размерах (256,128,32,16), чтобы хорошо выглядело в различных операционных системах. Примечание: Это не значок приложения на рабочем столе. null
setSettingsDialogImage(«Interface/mysplashscreen.png»)

Пользовательский образ заставки в каталоге assets/Interface, который отображается при отображении диалогового окна настроек. «/com/jme3/app/Monkey.png»
Вы можете использовать app.setShowSettings(true); и setSettingsDialogImage («Interface/mysplashscreen.png»), чтобы отобразить диалог настроек дисплея jme3 по умолчанию при запуске игры. Используйте app.setShowSettings (false); , Чтобы скрыть экран настроек по умолчанию. Установите это логическое значение перед вызовом app.start() в SimpleApplication приложения.

Переключение и активация настроек

Методы SimpleApplication Описание
app.setShowSettings(boolean) Активируйте или дезактивируйте экран настроек по умолчанию перед запуском игры. Если вы разрешаете пользователям использовать этот экран, вам не нужно изменять объект настроек. Примечание. Большинство разработчиков реализуют собственный экран пользовательских настроек, но этот по умолчанию используется во время альфа-стадий.
app.setSettings(settings) После того, как вы изменили свойства объекта настроек, вы примените его к вашему приложению. Обратите внимание, что настройки не перезагружаются автоматически в процессе время игры.
app.start() Каждая игра вызывает start() в начале инициализации игры и применения настроек. Измените и установите свои настройки перед вызовом start().
app.restart() Перезапуск запущенной игры, перезапускает игровой контекст и применяет обновленный объект настроек. (Это не перезапускает и не инициализирует всю игру.)

Сохранение и загрузка настроек

Объект AppSettings также поддерживает следующие способы сохранения настроек под уникальным ключом (в этом примере «com.foo.MyCoolGame3):

  • Используйте settings.save(«com.foo.MyCoolGame3»), чтобы сохранить настройки через стандартную сериализацию java.io.
  • Используйте settings.load(«com.foo.MyCoolGame3»), чтобы загрузить свои настройки.
  • Используйте команду settings2.copyFrom(settings) для копирования объекта настроек.

Применение:

Укажите уникальное имя вашего приложения jME3 в качестве аргумента String. Например, com.foo.MyCoolGame3.

    try { settings.save("com.foo.MyCoolGame3"); }
    catch (BackingStoreException ex) { /** Не удалось сохранить настройки */ }
  • В Windows настройки сохраняются в следующем разделе реестра:
  • HKEY_CURRENT_USER\Software\JavaSoft\Prefs\com\foo\MyCoolGame3

  • На Linux, эти настройки будут сохранены в XML-файл:
  • $HOME/.java/.userPrefs/com/foo/MyCoolGame3

  • На Mac ОС X, эти настройки будут сохранены в виде XML-файла в соответствии с:
  • $HOME/Library/Preferences/com.foo.MyCoolGame3.plist


Переведено для jmonkeyengine.ru, оригинал.
Автор перевода: Andry

Добавить комментарий

Содержание

jMonkeyEngine.ru © 2017. Все права сохранены.