Вторник, 20 Апреля 2021, 01:18

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » 2D-движки для создания игр » Libgdx. Загрузка ресурсов в отдельном потоке
Libgdx. Загрузка ресурсов в отдельном потоке
goldsphereДата: Среда, 30 Августа 2017, 17:30 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
Я знаю про существование AssetManager'a и как он работает. Просто у меня предусмотрена анимация на экране во время загрузки, обычный крутящийся квадрат. AssetManager периодически подгружая ресурсы делает эту анимацию прерывистой. Решил всю эту штуку в отдельный поток вынести, но для загрузки ресурсов нужен opengl контекст. Есть в либе специальный механизм решающий эту проблему, и называется это всё потоком, но это ни разу не поток. Он просто отрисовывает один кадр, затем в том же потоке запускает ваш поток, приостанавливая поток рендера. Opengl использует единственный поток для визуализации, а именно в нём происходит загрузка картинок.
Код
Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                Gdx.app.postRunnable(new Runnable() {
                    @Override
                    public void run() {
                        Assets.loadGameAssets();
                        Assets.manager.finishLoading();
                        loadingFinish = true;
                    }
                });
            }
        });

        thread.start();


Есть другие варианты реализовать нормальную анимацию на загрузочном экране?


FinderX - Android Аркада

Сообщение отредактировал goldsphere - Среда, 30 Августа 2017, 17:31
blackcatkpiДата: Среда, 30 Августа 2017, 21:06 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
Как по мне ассет менеджер и так работает параллельно.
Хотя, я не пробовал делать анимацию во время загрузки.
Любопытно, что будет


goldsphereДата: Четверг, 31 Августа 2017, 13:16 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте
Он асинхронный. Чтобы он загружал ресурсы надо вызывать метод update в цикле. С каждым вызовом он подгружает новую порцию ресурсов

FinderX - Android Аркада
Форум игроделов » Движки для разработки игр и сложные системы разработки » 2D-движки для создания игр » Libgdx. Загрузка ресурсов в отдельном потоке
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2021 Рейтинг