Сначала будет короткая версия статьи, в которой изложены только основные шаги. Это для людей знакомых с IntelliJ IDEA или тех, которые уже настраивали libGDX проект и кому нужно краткое повторение. Ниже пошаговое руководство со скриншотами.
Следуя руководству, вы сможете пользоваться IntelliJ IDEA, в то время как другие в вашей команде пользуются стандартной настройкой Eclipse. Обратите внимание, что workspace в Eclipse является проектом в IntelliJ IDEA и что проект в Eclipse представляется как модуль в IntelliJ IDEA.
Краткая Справка
- Создайте новый проект с нуля, укажите имя проекта и укажите имя модуля Main.
- Добавьте новый модуль с именем Desktop.
- Добавьте второй модуль, назовите его Android и выберите тип модуля Android.
- Создайте директории в 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 (директория)
- Откройте настройки модуля и добавьте содержимое каждой libs директории в соответствующий модуль.
- Сделайте, чтобы Main модуль экспортировал свои библиотеки.
- Задайте зависимые Android модули, указывающие на Main модуль.
- Сделайте то же самое для Desktop модуля.
- Добавьте starter класс.
- Не забудьте настроить manifest
- Свяжите assets между Android и Main модулями:
-
- Задайте конфигурацию запуска для DesktopStarter и установите рабочею директорию как Android/assets директорию.
- или
- Создайте директорию с data именем в Main модуле и сделайте ссылку из asset директории Android модуля.
- Создайте удивительное приложение!
Пошаговое Руководство со скриншотами
Скриншоты были сделаны в 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 модуль)
Поэтому у нас есть три варианта:
- (Прохой) Держать копию каждого asset ресурса в Android/assets директории, и по одной копии в Main/data директории. Это может занять много времени, и когда не скопированы последние assets, то при каждой попытке запуска вы получите сбой в приложении.
- (хорошо) Сделать чтобы Desktop модуль использовал Android/assets директорию в качестве рабочей директории. При сотрудничестве с людьми, использующими Eclipse настройки, это может быть предпочтительным, так как вам не нужно изменять какие-либо файлы или директории в проекте.
- (хорошо) Создать 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 покажет все параметры метода.