Начиная с 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. На экране будет просто чёрный экран.


01.
package
suvitruf.libgdxtutorial;
02.
import
com.badlogic.gdx.Game;
03.
public
class
MyGame
extends
Game {
04.
05.
@Override
06.
public
void
create() {
07.
08.
}
09.
}
01.
package
suvitruf.libgdxtutorial;
02.
import
com.badlogic.gdx.backends.android.AndroidApplication;
03.
import
android.os.Bundle;
04.
05.
public
class
MainActivity
extends
AndroidApplication {
06.
07.
/** Called when the activity is first created. */
08.
@Override
09.
public
void
onCreate(Bundle savedInstanceState) {
10.
super
.onCreate(savedInstanceState);
11.
AndroidApplicationConfiguration config =
new
AndroidApplicationConfiguration();
12.
config.useAccelerometer =
false
;
13.
config.useCompass =
false
;
14.
config.useWakelock =
true
;
15.
config.useGL20 =
true
;
16.
17.
initialize(
new
MyGame(), config);
18.
}
19.
20.
}
1.
<uses-permission android:name=
"android.permission.WAKE_LOCK"
/>
Если не добавите, то получите ошибку java.lang.RuntimeException: Unable to resume activity
. Это разрешение даёт доступ к PowerManager и ошибки не будет.
Собственно всё. Для введения хватит. Можете скачать исходники урока Libgdxtutorial-introduction.rar. В следующей статье расскажу о жизненном цикле игры.
Уведомление: libGDX: Часть 1. Жизненный цикл игры | Suvitruf's Blog
Уведомление: libGDX: Часть 2. Архитектура игры | Suvitruf's Blog
Создание игр будет для андроид, или для ПК(в смысле под винду линукс и т.п)
Java кроссплатформенная -.-
Но его вопрос корректен. Ведь игры на andEngine не получится запустить на ПК, например. Ява кроссплатформенна, но на каждой платформе могут быть какие-нибудь платформозависимые библиотеки.
Все стандартные библиотеки есть в jre же.
Добавьте, что libgdx можно отлаживать на x86 образе, правда с некоторыми костылями
Как подключить source и javadoc для либы?
Project/Generate Javadoc
Javadoc command это путь к файлу javadoc.exe.
..\Java\jdk1.5.0\bin\javadoc.exe.
Всё.
Видео создание нового проекта Libgdx в Intellij Idea( или Андроид Студии)
http://www.youtube.com/watch?v=HxRoyk4ypJM
Видео отличное. Спасибо. Но не могу установить новую версию Libgdx в Intellij Idea.
Они от версии к версии всегда что-нибудь ломают =/
я сам ошибся, если делать все как в видео то все отлично работает в Intellij Idea.
Привет! Спасибо за уроки. У меня появились ошибки, хотя делаю все точно по уроку.
Подчеркивает в MyGame — suvitruf.libgdxtutorial, пишет — The declared package «suvitruf.libgdxtutorial» does not match the expected package «»
А MainActivity ругает AndroidApplicationConfiguration — пишет AndroidApplicationConfiguration cannot be resolved to a type. Здесь же в 17 строке подчеркивает MyGame — MyGame cannot be resolved to a type.
Помогите разобраться. Не очень приятно — все ведь по уроку, а тут бьют по рукам.
Вы качали исходники мои или сами делали?
Если о libgdx — то с их сайта. А код весь из этой статьи.
Мой код работает на старой версии либы. А они в каждом новом билде что-нибудь всегда меняют.
Поэтому, большая вероятность, что мой код не будет работать сразу же на последней версией библиотеки. Но большинство появившихся ошибок обычно легко исправить )
Сложности подстерегают на каждом ходу) А как мои решить?
Вообще, вроде можно и без
AndroidApplicationConfiguration
запустить:initialize(new MyGame(), false);
А другая ошибка…У вас имя пакета и Application ID в манифесте какие?
Проверил — те же ошибки, плюс в следующих строках все в подчеркиваниях.
Наверное, тут важно принципы понять.
Есть еще вариант — если это возможно), поставьте последнюю версию и добавьте изменения. Так и начинающим будет полезно. Ведь старые версии они вряд ли будут использовать, если предлагаются новые.
Имена — везде как Вы и предлагали — suvitruf.libgdxtutorial
Дружище, очень жду ответа, потому что и по их вики есть ошибки — https://code.google.com/p/libgdx/wiki/SimpleApp — видимо они писали урок к более ранним версиям библиотеки.
С текущей версией libgdx всё нормально собирается по инструкции, но на телефоне в момент запуска крешится.
На сайте libgdx есть видео по созданию проектов. Следуйте ему и всё получится. Вот ссылка:
http://libgdx.badlogicgames.com/documentation.html
Большое спасибо за руководство! На днях буду изучать.
И ещё такой момент. Когда создал проекты, как показано на видео, во время импорта их в Eclipse у меня были ошибки что-то вроде «… android-19».
Для решения нужно в свойствах андроид-проекта (ПКМ->Properties) выбрать скаченную ранее версию Android SDK (выберите Android и там поставьте галочку возле имеющегося SDK).
Интересно вариант генерации проекта самим libgdx не рассмотрен из-за того что тогда его еще не было? если да, то будет ли актуальным дальнейшие статьи из этого цикла?
В ближайшее время нет, так как нынешнюю игру пишем на Unity3D )
Помогите плз, решить пробему —
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
AndroidApplicationConfiguration cannot be resolved to a type
все делал по инструкции.
Хелп, плз.
Если последнюю версию используете либы, то возможно там что-то поменяли.
Все сделал как вы описали! Eclips ругается на config.useGL20 = true; говорит что useGL20 вообще не существует(
А версия либы какая? Я уже писал, что в новых версиях они могли много чего поменять =/
да, они видимо полностью автоматизировали выбор GL без config.useGL20 = true; работает) но только на реальном устройстве, на эмуляторе завершает работу приложения, версия android 2.3.3
А с какой ошибкой? На 2.3 устройствах многие экстеншены из OpenGL 2.0 не работают. Из-за этого может падать.
Многие старые устройства 2.0 вообще не поддерживают)
Куча всего, вот Caused by: java.lang.RuntimeException: Libgdx requires OpenGL ES 2.0 одна из всех, все я думаю не стоит в комментарии вставлять!
у вас есть более ранние версия Libgdx, с которыми у вас не возникали такие проблемы, если да оставите пожалуйста ссылку)
https://github.com/Suvitruf/libgdx/tree/master/Libgdxtutorial-lesson2.1/libs
Спасибо, на старой версии все работает!)) работает и на эмуляторе!
хочу поддержать Ваш проект,только не знаю как это сделать.
Лучшая поддержка — это то, что статьи кому-то полезны)