Как сделать игру для андроид с LibGDX — мультиплатформенным фреймворком для создания игр, мы покажем в этом уроке на примере создания простой игры.
Ссылки:
Звуки, текстуры из этой игры: ссылка
Ортографическая камера в LibGDX: ссылка
Управление памятью в LibGDX: ссылка

Полный код игры:

Больше уроков:

Уроки Android Studio: тут
Инструменты android разработчика: тут
Дизайн android приложений: тут
Уроки создания игр для android: тут
Основы программирования на JAVA: тут

<<LibGDX: Урок 2. Немного теории | Делаем android игры

LibGDX: Урок 4. Добавляем в игру экран меню и счетчик прогресса>>

LibGDX: Урок 3. Создаем простую игру | Делаем android игры обновлено: Ноябрь 20, 2015 автором: admin

  1. По какой причине данный код прекрасно работает при проверке на десктопе, но выдаёт ошибку при загрузке на эмуляторе? В чём может быть подвох?

  2. Иван, Вы решили свою проблему? У меня та же самая проблема. При проверке на desktop-е работает, а на эмуляторе — нет.

  3. Ребят, вы бы хоть код ошибки выложили. Может быть у вас версия API эмулятора не подходит?

  4. Виталий, спасибо за статью и видео. Это то, чего мне не хватало для того, чтобы начать программировать под Android.
    Может быть знаете почему в desktop приложении звука нет, а на устройстве с android есть.

  5. Exception in thread «LWJGL Application» com.badlogic.gdx.utils.GdxRuntimeException: Error creating sound com.badlogic.gdx.backends.lwjgl.audio.Wav$Sound for file: waterdrop.wav
    at com.badlogic.gdx.backends.lwjgl.audio.OpenALAudio.newSound(OpenALAudio.java:119)
    at com.badlogic.gdx.backends.lwjgl.audio.OpenALAudio.newSound(OpenALAudio.java:41)
    at ua.org.amt.Drop.create(Drop.java:44)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:147)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:124)
    Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at com.badlogic.gdx.backends.lwjgl.audio.OpenALAudio.newSound(OpenALAudio.java:117)
    … 4 more
    Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Error reading WAV file: waterdrop.wav
    at com.badlogic.gdx.backends.lwjgl.audio.Wav$WavInputStream.(Wav.java:109)
    at com.badlogic.gdx.backends.lwjgl.audio.Wav$Sound.(Wav.java:63)
    … 9 more
    Caused by: com.badlogic.gdx.utils.GdxRuntimeException: WAV files must have 16 bits per sample: 8
    at com.badlogic.gdx.backends.lwjgl.audio.Wav$WavInputStream.(Wav.java:102)
    … 10 more

  6. Спасибо автору. Строго следовал инструкции. Все запускается на десктопе и на «китайфоне»
    .
    Давно планировал перетащить свой проект с мёртвого AndEngine на живой движок.
    Как я понял — у движка нет альтернативы методам attachChild(IEntity) и т.п. как в AndEngine.
    Если же все-таки это как-то реализовано — буду рад подсказке.

  7. Хелп!
    На десктопе игра работает отлично, но на андроиде моментально вылетает при запуске.
    код ошибки:
    09-18 23:49:15.064 6353-6390/info.fandroid.drop E/AndroidRuntime: FATAL EXCEPTION: GLThread 1439
    Process: info.fandroid.drop, PID: 6353
    java.lang.NoClassDefFoundError: Failed resolution of: Ljava/awt/Rectangle;
    at info.fandroid.drop.Drop.create(Drop.java:40)
    at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:275)
    at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1564)
    at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1286)
    Caused by: java.lang.ClassNotFoundException: Didn’t find class «java.awt.Rectangle» on path: DexPathList[[zip file «/data/app/info.fandroid.drop-2/base.apk»],nativeLibraryDirectories=[/data/app/info.fandroid.drop-2/lib/arm64, /vendor/lib64, /system/lib64]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
    at info.fandroid.drop.Drop.create(Drop.java:40) 
    at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:275) 
    at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1564) 
    at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1286) 
    Suppressed: java.lang.ClassNotFoundException: java.awt.Rectangle
    at java.lang.Class.classForName(Native Method)
    at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
    at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
    … 5 more
    Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

    Если не использовать класс Rectangle в приложении то оно запускается (я закомментировал все относящееся к нему и вместо этого просто напрямую отрисовал картинку)

  8. Запуск на android настраиваем в последних уроках.

  9. В видео уроке не увидел когда добавили эту строчку

    for (Rectangle raindrop: raindrops){
    batch.draw(dropImage, raindrop.x, raindrop.y);
    }

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*
*
Website