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.
    • 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 (директория)
  5. Откройте настройки модуля и добавьте содержимое каждой libs директории в соответствующий модуль.
  6. Сделайте, чтобы Main модуль экспортировал свои библиотеки.
  7. Задайте зависимые Android модули, указывающие на Main модуль.
  8. Сделайте то же самое для Desktop модуля.
  9. Добавьте starter класс.
  10. Не забудьте настроить manifest
  11. Свяжите assets между Android и Main модулями:
    • Задайте конфигурацию запуска для DesktopStarter и установите рабочею директорию как Android/assets директорию.
    • или
    • Создайте директорию с data именем в Main модуле и сделайте ссылку из asset директории Android модуля.
  12. Создайте удивительное приложение!

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

Скриншоты были сделаны в Windows при запуске 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.

Связывание Asset директорий

Android немного прихотливый, когда дело доходит до assets, поэтому он должен иметь все asset ресурсы в собственных 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 + I покажет код метода в небольшом окне, полезно, когда вы хотите быстро проверить внутреннюю работу gdx класса. Это работает, потому что мы добавили gdx-sources.jar

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

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