Поиск
Меню
Категории раздела
Рекомендуем
|
Libgdx приложениеLibgdx позволяет сосредоточиться на нескольких платформах, таких ка Desktop ОС, Android и веб браузер. Каждая платформа имеет различные механизмы, когда дело доходит до настройки окна приложения, обработки пользовательского ввода, взаимодействия с файловой системой, аудио проигрывания и так далее. Back-endLibgdx пытается абстрагировать эти различия через множество интерфейсов, которые скрывают специфику платформы. Для каждой платформы libgdx поддерживает так называемые back-end и реализует эти интерфейсы. Разработчик приложения не связан с back-end напрямую, вместо этого разработка ведется через интерфейсы. В настоящее время libgdx поддерживает 4 разных back-end.
МодулиВ основе ядра libgdx лежит пять интерфейсов, предоставляющие по сути взаимодействие с операционной системой. Каждый back-end реализует следующие интерфейсы:
Starter классыStarter класс — это код написанный для конкретной платформы. Back-end предоставляет для каждой платформы фрагмент кода конкретной реализации Application интерфейса. При использовании Lwjgl back-end для настольных компьютеров это может выглядеть примерно так: public class DesktopStarter {Для Android соответствующий starter класс может выглядеть следующим образом: public class AndroidStarter extends AndroidApplication {Эти два класса обычно находятся в отдельных проектах, например в Desktop и Android проектах. Структура этих проектов описана в настройки проекта. Фактически код приложения находится в классе, который реализует ApplicationListener интерфейс (MyGame в приведенном выше примере). Экземпляр этого класса передается в соответствующие инициализирующие методы каждой back-end Application реализации. Затем в приложении будут вызывать методы ApplicationListener в соответствующее время. Доступ к модулямОписанные выше модули могут быть доступны через статические поля Gdx класса. По сути это набор глобальных переменных, которые дают легкий доступ к любому модулю libgdx. В целом это очень плохая практика написания кода, но было решено использовать этот механизм для облегчения головной боли связанной с передачей часто используемых ссылок в различных местах основного кода. Например для доступа к аудио модулю можно просто написать следующее: // creates a new AudioDevice to which 16-bit PCM samples can be writtenGdx.audio является ссылкой back-end реализации, которая была создана Application экземпляром при запуске приложения. Другие модули доступны тем же самым способом, например Gdx.app чтобы получить Application, Gdx.files чтобы получить Files реализацию и так далее. |