Перевод туториалов по libGDX — часть 1 (настройка проекта в Eclipse)

в 9:02, , рубрики: android, java, libgdx, mobile development, игры, метки: , , ,

Эта статья — перевод первого туториала для проекта libGDX. Оригинал находится здесь —

От переводчика: недавно у меня появилось желание написать игру под Android. У меня есть некоторый опыт программирования на Java, но я почти не сталкивался с разработкой под Android. Тут я наткнулся на библиотеку libGDX, которая позволяет писать кросплатформенные игры. Также я наткнулся, что по ней не хватает русской документации, а конкретно — туториалов. Поэтому у меня появилось желание перевести туториалы. Это мой первый перевод, поэтому буду рад любым замечаниям и указаниям на неточности.

Настройка проекта

Примечание: есть проблемы с использованием Java 1.7 для Android-приложений. Убедитесь, что вы используете Java 1.6
Примечание: надо сделать несколько шагов для настройки приложения под Android. Смотрите ниже.

Эта статья описывает, как настроить Eclipse для разработки и запуска приложений как на настольном компьютере, так и на Android-устройствах.

Настройка главного проекта

1. Создайте новый Java-проект в Eclipse.
2. Перейдите к каталогу проекта в файловой системе и создайте в нем каталог с названием libs. Загрузите nightly zip (nightly zip — это архив из последней сборкой проекта — прим. переводчика) и положите gdx.jar и gdx-sourses.jar в каталог libs/
3. Щелкните правой кнопкой мыши на проекте в Eclipse, и нажмете Refresh. Снова щелкните правой кнопкой, выберите Properties -> Java Build Path -> Libraries -> Add JARs, выберите jdx.jar и нажмите OK.
4. Щелкните правой кнопкой мыши по файлу gdx.jar -> Properties -> Java source attachment. Нажмите Workspace, выберите gdx-sources.jar и нажмите ОК.
5. Щелкните по вкладке Order and Export, поставьте галочку напротив gdx.jar и нажмите ОК.
Примечание: пятый шаг сделает gdx.jar транзитивно зависимым. Это означает, что проекты, которые зависят от главного проекта, также будут иметь gdx.jar в своем classpath. Однако, это не касается Android-приложений.

Настройка приложения для настольного ПК.

1. Создайте новый проект в Eclipse. Назовите его соответствующим образом (gamename-desktop, например).
2. Перейдите к каталогу проекта в файловой системе и создайте в нем подкаталог с названием libs. Положите библиотеки gdx-natives.jar, gdx-backend-lwjgl.jar, gdx-backend-lwjgl-natives.jar в каталог libs.
3. Щелкните правой кнопкой мыши на проекте, нажмите Refresh. Снова щелкните правой кнопкой мыши -> Properties -> Java Build Path -> Libraries -> Add JARs, выберите три библиотеки из каталога libs и нажмите ОК.
4. Перейдите на вкладку Projects, нажмите Add, выберите созданный выше главный проект и нажмите ОК.

Настройка приложения для Android.

Перед тем, как делать следующие шаги, вам необходимо убедиться, что у вас есть установленный Android SDK.
1. Создайте новый Android-проект в Eclipse. Дайте ему подходящее название (например, gamename-android). В качестве версии Android выберите Android 1.5 или выше. Укажите название пакета (например, com.gamename). Дальше нажмите на «Create Activity» и введите «AndroidGame». Нажмите Finish.
2. Перейдите к каталогу проекта в файловой системе и создайте в нем подкаталог libs. Положите в него библиотеку gdx-backend-android-jar и каталоги armeabi и armeabi-v7a из nightly zip.
3. В Eclipse, нажмите правой кнопкой мыши на проекте, нажмите Refresh. Снова щелкните правой кнопкой мыши на проекте -> Properties -> Java Build Path -> Libraries -> Add JARs, выберите jdx-backend-android.jar и нажмите ОК.
4. Снова нажмите Add JARs, выберите jdx.jar из главного проекта и нажмите ОК.
5. Перейдите на вкладку Projects, нажмите Add, выберите главный проект и нажмите ОК.
6. Перейдите на вкладку Order and Export и поставьте галочку напротив главного проекта.
Примечание: подкаталог libs должен иметь строго такое название. Это связано с соглашениями именования, принятых в Android Eclipse Plugin.

Настройка каталога assets.

Android-проекты имеют подкаталог с названием assets, который создается автоматически. Файлы, которые будут доступны Android-приложению, должны быть размещены там. Это создает проблему, поскольку эти же файлы должны быть доступны для настольного приложения. Лучше настроить приложение для настольного ПК так, чтобы оно могло найти эти файлы в каталоге assets, чем поддерживать две копии файлов. Для этого нужно проделать следующие шаги:

1. Перейдите к свойствам проекта для настольного ПК, выберите Java Build Path, перейдите на вкладку Source и нажмите на Link Source -> Browse, выберите каталог assets из вашего Android-приложения и нажмите ОК.
2. Задайте имя assets в поле Folder Name, нажмите Finish, а затем ОК.

Примечание: если ваше настольное приложение и приложение для Android находятся в одном родительськом каталоге, вы можете использовать «PARENT-1-PROJECT_LOC/gamename-android/assets» для указания связанной папки assets, где gamename-android — название вашего Android-проекта. Это лучше чем жестко заданый путь если вы собираетесь распространять ваши проекты.

Создание игры.

У вашем главном проекте создайте новый класс. Назовите его Game и задайте для него имя пакета (com.gamename, например). В поле Interfaces нажмите Add, выберите ApplicationListener b нажмите ОК. У вас должно появиться что-то похожее:

import com.badlogic.gdx.ApplicationListener;

public class Game implements ApplicationListener {
        public void create () {
        }

        public void render () {
        }

        public void resize (int width, int height) {
        }

        public void pause () {
        }

        public void resume () {
        }

        public void dispose () {
        }
} 

Эти методы позволяют настроить вашу игру и управлять ее отрисовкой. Пока они пусты, эта игра не будет ничего отображать — только пустой экран. Мы должны заставить эту игру запуститься перед тем, как мы сделаем что-то более интересное.

Запуск игры для настольного приложения

Щелкните правой кнопкой мыши на приложении для настольного ПК и создайте новый класс. Назовите его DesktopGame и укажите пакет для него (например, com.gamename). Нажмите ОК. Приведите этот класс к следующему виду:

import com.badlogic.gdx.backends.lwjgl.LwjglApplication;

public class DesktopGame {
        public static void main (String[] args) {
                new LwjglApplication(new Game(), "Game", 480, 320, false);
        }
}

Этот код создаст экземпляр LwjglApplication, передаст ему экземпляр вашей игры, с заданным именем и размерами окна. Последний параметр false указывает, что не нужно использовать OpenGL ES 2.0 (мы будем использовать 1.0/1.1).

Для запуска приложения, щелкните правой кнопкой мыши на проекте -> Debug as -> Java Application. Выберите класс DesktopGame и нажмите ОК. Вы увидите черное окно с заголовком Game. (Мне кажется, проще открыть класс DesktopGame и нажать Ctrl+F11 — прим. переводчика).

Запуск игры на Android.

Откройте класс AndroidGame у вашем Android проекте, который должен создаться автоматически и приведите его к следующему виду:

import com.badlogic.gdx.backends.android.AndroidApplication;

public class AndroidGame extends AndroidApplication {
        public void onCreate (android.os.Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                initialize(new Game(), false);
        }
}

Метод initialize в деятельности(Activity) создает и запускает экземпляр нашей игры. Опять же, false означает, что мы не используем OpenGL ES 2.0

Для запуска игры на Android, щелкните правой кнопкой мыши на проекте -> Debug As -> Android Application. Экран будет черным, поскольку наша игра пока ничего не делает. Если будут какие-либо ошибки, они покажутся в Logcat view, которое вы можете открыть, нажав на меню Window -> Show View -> Other -> Android -> Logcat.

Обновление libgdx

Если вам захочется обновить libgdx, скачайте nigtly zip снова и обновите следующие файлы у ваших проектах:

Главный проект: libs/gdx.jar, libs/gdx-sources.jar

Android: libs/gdx-backend-android.jar, libs/armeabi (каталог), libs/armeabi-v7a (каталог)

Настольное приложение: libs/gdx-natives.jar, libs/gdx-backend-lwjgl.jar, libs/gdx-backend-lwjgl-natives.jar

Автор: 1nt3g3r

Поделиться

* - обязательные к заполнению поля