Вторник, 2024-03-19, 12:39 PM

Поиск
Меню
Категории раздела
Поддержи проект!
Рекомендуем


libgdx и IntelliJ IDEA

Сначала будет короткая версия статьи, в которой изложены только основные шаги. Это для людей знакомых с IntelliJ IDEA или тех, которые уже настраивали libgdx проект и кому нужно краткое повторение. Ниже пошаговое руководство со скриншотами.

Следуя руководству мы сможете пользоваться IntelliJ IDEA, в то время как другие в вашей команде пользуются стандартной настройкой Eclipse. Обратите внимание, что workspace в Eclipse является проектом в IntelliJ IDEA и что проект в Eclipse представляется как модуль в IntelliJ IDEA.

Краткая Справка

  1. Создайте новый проект с нуля, укажите имя проекта и укажите имя модуля Main.
  2. Добавьте новый модуль с именем Desktop.
  3. Добавьте второй модуль, назовите его Android и выберите тип модуля Android.
  4. Создайте директории в Desktop и Main модулях с именем libs.
  5. Добавьте следующие файлы и директории из libgdx архива:
    • Main/libs:
      • gdx.jar
      • sources/gdx-sources.jar
    • Desktop/libs:
      • gdx-natives.jar
      • gdx-backend-lwjgl.jar
      • gdx-backend-lwjgl-natives.jar
    • Android/libs:
      • gdx-backend-android.jar
      • armeabi (директория)
      • armeabi-v7a (директория)
  6. Откройте настройки модуля и добавьте содержимое каждой libs директории в соответствующий модуль.
  7. Сделайте чтобы Main модуль экспортировал свои библиотеки.
  8. Задайте Android модули зависимости указывающие на Main модуль.
  9. Сделайте то же самое для Desktop модуля.
  10. Добавьте starter класс.
  11. Не забудьте настроить manifest
  12. Свяжите assets между Android и Main модулями:
    • Задайте конфигурацию запуска для DesktopStarter и установите рабочею директорию как Android/assets директорию
    • или
    • Создайте директорию с data именем в Main модуле и сделайте ссылку из asset директории Android модуля
  13. Создайте удивительное приложение!

Пошаговое Руководство со cкриншотами

Скриншоты были сделаны при запуске Ultimate IntelliJ IDEA 11.1.1 в Windows, все может выглядеть не совсем, так как на вашем компьютере

В этом руководстве проект находился в C:\Android и назывался MyLibgdxGame. Весь код игры будет в Main модуле.

Подготовка

  • Вам нужно установить Android SDK.
  • Убедись, что в IntelliJ IDEA включен Android плагин. File->Settings->Plugins.

Создание Проекта

  • Выберите File->New Project.
  • Выберите Create project from scratch в диалоговом окне и нажмите Next.
  • В следующем окне введите имя (1) и выберите место (2) проекта. Дайте создаваемому модулю имя Main (3) и затем нажмите кнопку Next.
  • В следующем окне выберите Create source directory, дайте название src и нажмите Next.
  • В последнем окне нажмите Finish.

Создание Desktop Модуля

  • Выберите File-> New Module (1).
  • Выберите Create module from scratch, и нажмите Next.
  • Назовите его Desktop (2) и нажмите Next.
  • Выберите Create source directory, дайте название src и нажмите Next.
  • В следующем окне нажмите кнопку Finish.

Создание Android Модуля

  • Снова выберите File-> New Module.
  • Выберите Create module from scratch и нажмите Next.
  • На экране назовите модуль Android (1) и выберите тип модуля Android (2). Затем нажмите Next.
  • Выберите Create source directory, дайте название src и нажмите Next.
  • На следующем экране выберите ваш целевой Android SDK (1). Дайте название приложению (2), пакету, создайте Activity(3). Читайте ниже, если у вас нет Android SDK в выпадающем меню или вы хотите добавить еще что-нибудь.
  • Выберите конфигурацию для запуска и нажмите Finish.

Добавление Android SDK в IDEA IntelliJ

  • Этот шаг необходим только если вам нужен выбрать новый Android SDK при создании Android модуля.
  • Нажмите кнопку [...] рядом с выпадающим списком ((4) на предыдущем рисунке).
  • В открывшемся окне нажмите кнопку [+] (1), выберите Android SDK (2).
  • Откроется еще одно окно. Здесь выберите место установленного Android SDK (3) и нажмите кнопку OK (4).
  • Выберите Java 1.6, если будет предложено, а затем выберите целевой Android SDK (5) и нажмите кнопку OK (6).
  • Если в списке(5) нет нужной вам целевой версии Android, вам нужно сначала скачать ее с помощью Android SDK средств.

Добавление Libgdx Файлов

  • Щелкните правой кнопкой мыши на Desktop модуле (1), выберите New->Directory (2). Назовите директорию libs и нажмите OK.
  • Сделайте то же самое для Main модуля (3).
  • Скачайте Libgdx, любую из двух последних stable или nightlies версий.
  • Поместите эти файлы в libs директорию Main модуля:
    • gdx.jar
    • sources/gdx-sources.jar
  • Поместите из libgdx архива эти файлы в libs директорию Desktop модуля:
    • gdx-natives.jar
    • gdx-backend-lwjgl.jar
    • gdx-backend-lwjgl-natives.jar
  • Поместите из libgdx архива эти файлы в libs директорию Android модуля:
    • gdx-backend-android.jar
    • armeabi (вся директория)
    • armeabi-v7a (вся директория)
  • На рисунке справа показано, как библиотеки должны быть размещены при завершении этого шага.

Добавление Библиотек

  • Щелкните правой кнопкой мыши на Main модуле и выберите Open Module Settings.
  • Выберите Libraries (1) в первой панели.
  • Нажмите кнопку [+] (2) вверху второго столбца и выберите Java, если будет предложено.
  • Выберите libs директорию Android модуля (3) и нажмите кнопку OK.
  • Выберите Android модуль (4) и нажмите еще раз кнопку OK.
  • Назовите его Androidlibs (5).
  • Нажмите кнопку [+] (2), но на этот раз выберите libs директорию Desktop модуля (3), выберите Desktop модуль (4) и назовите его Desktoplibs (5).
  • Нажмите кнопку [+] (2), но на этот раз выберите libs директорию Main модуля (3), выберите Main модуль (4) и назовите его Mainlibs (5).

Добавление Зависимостей

  • Выберите модули (1) в первой панели.
  • Выберите Main модуль (2) во второй панели.
  • Выберите вкладку Dependencies (3) в третьей панели.
  • Отметьте Export напротив Mainlibs (4).
  • Выберите Desktop модуль (5) во второй панели.
  • Нажмите кнопку [+], справа от (6).
  • Выберите Module Dependency (7).
  • Выберите Main модуль (8) и нажмите кнопку OK.
  • Выберите Android модуль (9) во второй панели и повторение (6), (7) и (8).
  • Нажмите OK, чтобы закрыть Project Structure окно.

Добавление Starter Классов

  • Щелкните правой кнопкой мыши src директории Main модуля и выберите New-> Package. Дайте ему имя в нашем примере com.example.mylibgdxgame.
  • Щелкните правой кнопкой мыши на новом пакете и выберите New-> Java Class и назовите его. В нашем примере MyLibgdxGame.
  • Создайте класс реализующий ApplicationListener интерфейс или расширьте класс, который делает это. Например, расширьте Game класс.
  • public class MyLibgdxGame extends Game {
        @Override
        public void create() {
        }
    }
  • Это точка входа для вашей игры.
  • Щелкните правой кнопкой мыши src директории Desktop модуля и также добавьте новый пакет.
  • Затем добавите Java класс для этого пакета с именем DesktopStarter.
  • Создайте класс с похожей конфигурации запуска как показано ниже, замените соответствующее название игры классом созданном в Main модуле.
  • public class DesktopStarter {
        public static void main(String[] args) {
           LwjglApplicationConfiguration cfg = new LwjglApplicationConfiguration();
           cfg.title = "Title";
           cfg.useGL20 = true;
           cfg.width = 800;
           cfg.height = 480;
           new LwjglApplication(new MyLibgdxGame(), cfg);
        }
    }
  • Откройте класс в Android модуле, который был создан при создании Android модуля.
  • Вместо расширения Activity, класс должен расширять AndroidApplication.
  • Добавьте инициализацию и конфигурацию запуска, как показано ниже:
  • public class MyLibgdxGameAndroidStarter extends AndroidApplication
    {
        @Override
        public void onCreate(Bundle savedInstanceState)
        {
           super.onCreate(savedInstanceState);
           AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
           cfg.useAccelerometer = false;
           cfg.useCompass = false;
           cfg.useWakelock = true;
           cfg.useGL20 = true;
           initialize(new MyLibgdxGame(), cfg);
        }
    }
Смотрите Starter классы и настройку, как использовать эти настройки и как настроить manifest.

Связывание Aseet Директорий

Android немного прихотливый, когда дело доходит до assets, поэтому он должен иметь все assets в собственных assets директориях и не использовать assets из Main модуля (как делает Desktop модуль)

Поэтому у нас есть три варианта:

  1. (Прохой) Держать копию каждого asset в Android/assets директории, и по одной копии в Main/data директории. Это может занять много времени, и вы получите сбой в приложении при каждой попытке запуска, когда не скопированы последние assets.
  2. (хорошо) Сделать чтобы Desktop модуль использовал Android/assets директорию в качестве рабочей директории. При сотрудничестве с людьми, использующими Eclipse настройки, это может быть предпочтительным, так как вам не нужно изменять какие-либо файлы или директории в проекте.
  3. (хорошо) Создать sym-link между двумя каталогов в ОС. Это позволит сделать обе директории как бы одной директорией.

Вариант 2: Рабочия Директория

  • Выберите Run->Edit Configurations... (1).
  • Нажмите кнопку [+] (2) и выберите Application (3).
  • Задайте имя конфигурации (4).
  • Выберите DesktopStarter класс (5).
  • Установить рабочею директорию на Android\assets директорию (6).
  • Выберите Desktop модуль (7).

Вариант 3: Sym-Link

Это изображение показывает как создать sym-link в Windows (нужно будет запустить командную строку с правами администратора). Linux / OS X могут сделать то же самое с использованием ln -s -командой.

Примечание: Вам понадобится data директория в Main модуле и вам нужно будет добавить data/ префикс ко всем вашим assets.

Смотрите это изображение настройки запуска, которую вам следует использовать.

Советы по использованию IntelliJ IDEA

Ctrl + Q, когда каретка расположена над любым методом или переменной или при просмотре quick-suggestions для документации.

CTRL + SHIFT + покажут код метода в небольшом окне, полезно, когда вы хотите быстро проверить внутреннюю работу gdx класса. Это работает, потому что мы добавили gdx-sources.jar

CTRL + левой кнопка мыши откроет код в редакторе.

CTRL + P покажет все параметры метода.