я хочу использовать assetmanager для изображения - PullRequest
0 голосов
/ 09 мая 2018

MyGdxGame.java

 public void print(){
    manager=new AssetManager();
    manager.load("selectlevel.png",Texture.class);
    manager.finishLoading();
    }

экран выбора уровня

 public void image(){
    Image img1=game.manager().get(("selectlevel.png"));
    }

что я получу (

Исключение в потоке "Приложение LWJGL" java.lang.ClassCastException: com.badlogic.gdx.graphics.Texture не может быть приведен к com.badlogic.gdx.scenes.scene2d.ui.Image

Я не хочу менять тип изображения на текстуру.

1 Ответ

0 голосов
/ 09 мая 2018

На основании вашего сообщения об ошибке:

Исключение в потоке "LWJGL-приложение"

Вы пытаетесь поместить текстуру в переменную, созданную для scene2d.ui.Image. Это не будет работать, потому что текстура и scene2d.ui.Image очень разные.

У scene2d.ui.Image есть конструктор, который принимает текстуру, поэтому должен называться так:

Image imgVariable = new Image(i_am_a_Texture);

В комментариях, которые вы упомянули, вы получили ошибку

не удается разрешить конструктор 'Image (java.lang.Object)'

Это говорит о том, что когда вы использовали новый конструктор Image, вы передавали ему объект, а не текстуру, которую он ожидал.

Чтобы сделать Объект текстурой, вы могли бы привести его к текстуре, добавив (текстуру) к объекту, который вы хотите наложить следующим образом:

 Texture textureVariable = (Texture) game.manager().get(("selectlevel.png"));

Однако у assetManager уже есть способ сказать, каким классом должен быть возвращаемый объект, и это добавить класс в качестве второго параметра, как показано ниже

Texture textureVariable = game.manager().get(("selectlevel.png",Texture.class))
...