Настраиваем проект и подключаем библиотеку LWJGL (Lightweight Java Game Library) для разработки 3D-игр.
Подключение LWJGL через Gradle
Для разработки используется стороннняя библиотека LWJGL. Подключение осуществляется через её официальный сайт. На странице загрузки, в разделе «Customize», указываем параметры:
- Система сборки: Gradle (или Maven).
- Платформа: Windows, Linux или macOS.
- Комплектация: Вариант, включающий все возможности библиотеки и дополнение joml.
Сайт сгенерирует код подключения. Он содержит множество зависимостей, многие из которых могут быть не нужны. Поэтому предлагаем использовать упрощенный вариант dependencies, содержащий только необходимые библиотеки и классы (доступен по ссылке).
Важно: на Windows замените natives macos на natives windows, а на Linux — на natives linux.
Настройка файла build.gradle
В файле build.gradle:
- Удаляем блоки test и dependencies. Блок dependencies содержит зависимости для юнит-тестирования.
- Вставляем скопированный блок dependencies.
После вставки зависимостей, синхронизируем проект в IDE для загрузки библиотек.
Создание и запуск основного класса
Создаём или открываем класс Main. Удаляем его содержимое, оставив объявление класса и пакета.
Вставляем базовый код запуска приложения (раздел «Get Started» на официальном сайте LWJGL). Убедитесь, что имя класса соответствует имени файла (Main) и что объявление package сохранено. Иначе возникнет ошибка.
Запускаем проект, нажав кнопку запуска в IDE. Первая сборка может занять некоторое время.
Решение проблемы с отображением окна приложения
Если окно не отображается, добавляем параметры VM options:
- В настройках запуска приложения (Edit Configuration) выбираем наше приложение.
- Нажимаем «Modify options».
- Добавляем VM options (Add VM options).
- Вставляем строку с опциями (ссылка).
- Нажимаем «Apply» и «OK».
После этого запускаем проект. Должно открыться окно с красным фоном и кнопками управления (полноэкранный режим, закрытие).
Анализ базового кода
Рассмотрим основной код:
- window: Идентификатор окна.
- run(): Запускает приложение. Вызывается из main().
- init(): Инициализирует окно и настройки, используя GLFW (библиотека для доступа к OpenGL). Устанавливает размер окна, заголовок, коллбеки (например, обработчик Escape). Центрирует окно.
- loop(): Отрисовывает содержимое окна. Создаёт плоскость и заполняет её красным цветом. Содержит цикл работы приложения.
- Функции очистки памяти: Выполняются при закрытии приложения.
В init() работаем с OpenGL через GLFW, устанавливаем параметры окна и обрабатываем события. loop() отвечает за отрисовку. В следующем уроке рассмотрим отрисовку подробнее.
Мы настроили проект и запустили базовое приложение на LWJGL. Научились подключать библиотеку, настраивать параметры запуска и разобрали основной код. В следующих уроках продолжим работу с LWJGL и создадим более сложные элементы игры.