Начиная с libGDX работать, уже тогда подумал над написанием туторила по этой библиотеке. Когда начал освещать процесс написания игры, то вопросы посыпались на мыло и в твиттер по некоторым аспектам разработки. Так что, начнём. Список всех статей (да и какие-нибудь другие материалы) буду размещать на странице о libGDX. В новом уроке будет использоваться исходник предыдущего и что-то дописываться.
Сама страница проекта code.google.com/p/libgdx/. Так же можно посмотреться список игр разработанных на libgdx.
Для связи и для поиска материалов:
Forum: http://badlogicgames.com/forum IRC: irc.freenode.net, #libgdx
Подготовка к разработке
Предполагается, что окружение у вас уже настроено. Если нет, почитайте о настройке связки Eclipse+ADT+JDK+Android SDK. Качаем с отсюда libgdx-nightly-latest.zip, распаковываем куда-нибудь. Создаём новый проект.
- Eclipse: File -> New -> Project -> Android Application Project. Имя проекта Libgdxtutorial. Package Name suvitruf.libgdxtutorial. SDK лучше выбирать поменьше. Я лично выбираю Android 2.1 с API 7.
- Дальше можно оставить всё по умолчанию. Тогда у вас главным Activity будет MainActivity.
- Если ещё нету в проекте папки libs, создайте её (правой кнопкой мыши по проекту -> New -> Folder.
- Открывайте папку, куда вы распаковали архив libgdx-nightly-latest.zip. Скопируйте файлы gdx.jar, gdx-backend-android.jar и папки armeabi-v7a, armeabi в нашу папку libs. Можно просто перетащить их в дерево проекта, Eclipse предложить их скопировать, жмите ОК.
- Дерево проекта обновится, если нет, то нажмите правую кнопку мыши -> Refresh. Затем жмите по проекту ПКМ и выбирайте Properties -> Java Build Path -> Libraries -> Add JARs, выбирайте gdx-backend-android.jar и gdx.jar.
- В Properties -> Java Build Path -> Order and Export выберите эти два файла.
- Добавьте новый класс, назовите MyGame. Замените содержание файла на:
- Откройте MainActivity. Заменяем весь код в файле на:
- Откройте файл манифеста и добавьте разрешение:
- Запускайте как Android Application. На экране будет просто чёрный экран.
package suvitruf.libgdxtutorial; import com.badlogic.gdx.Game; public class MyGame extends Game { @Override public void create() { } }
package suvitruf.libgdxtutorial; import com.badlogic.gdx.backends.android.AndroidApplication; import android.os.Bundle; public class MainActivity extends AndroidApplication { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); AndroidApplicationConfiguration config = new AndroidApplicationConfiguration(); config.useAccelerometer = false; config.useCompass = false; config.useWakelock = true; config.useGL20 = true; initialize(new MyGame(), config); } }
<uses-permission android:name="android.permission.WAKE_LOCK"/>
Если не добавите, то получите ошибку java.lang.RuntimeException: Unable to resume activity
. Это разрешение даёт доступ к PowerManager и ошибки не будет.
Собственно всё. Для введения хватит. Можете скачать исходники урока Libgdxtutorial-introduction.rar. В следующей статье расскажу о жизненном цикле игры.