2017-02-03 15 views
0

Мой AssetManager класс:AssetManager ничего не делает - LibGDX

public class AssetLoader { 

public AssetManager manager = new AssetManager(); 


public void load(){ 
    manager.load("antoanimation.png", Texture.class); 
    manager.load("antoButton.png", Texture.class); 
    manager.load("textures/bg2.png", Texture.class); 
    manager.load("bottomtube2.png", Texture.class); 
    manager.load("clickme.png", Texture.class); 
    manager.load("diamtermopan.png", Texture.class); 
    manager.load("gameover.png", Texture.class); 
    manager.load("grass.png", Texture.class); 
    manager.load("logo.png", Texture.class); 
    manager.load("menubutton.png", Texture.class); 
    manager.load("pausebutton.png", Texture.class); 
    manager.load("pausemenu.png", Texture.class); 
    manager.load("play.png", Texture.class); 
    manager.load("restartbutton.png", Texture.class); 
    manager.load("return.png", Texture.class); 
    manager.load("selected.png", Texture.class); 
    manager.load("shopbutton.png", Texture.class); 
    manager.load("textures/shopLayout.png", Texture.class); 
    manager.load("termopanButton.png", Texture.class); 
    manager.load("vladanimation.png", Texture.class); 
    manager.load("vladButton.png", Texture.class); 
} 



public void dispose(){ 

    manager.dispose(); 
    } 

    } 

Мой главный класс:

public class FlappyPela extends ApplicationAdapter { 
public static SpriteBatch batch; 
private GameStateManager gsm; 
private AssetLoader assets; 


@Override 
public void create() { 
    batch = new SpriteBatch(); 
    gsm = new GameStateManager(); 
    assets = new AssetLoader(); 
    assets.load(); 
    assets.manager.finishLoading(); 
    assets.manager.get("textures/bg2.png", Texture.class); 
    assets.manager.get("logo.png", Texture.class); 
    assets.manager.get("clickme.png", Texture.class); 
    gsm.push(new MenuState(gsm, assets)); 
} 



@Override 
public void render() { 
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 
    gsm.update(Gdx.graphics.getDeltaTime()); 
    gsm.render(batch); 



} 
@Override 
public void dispose() { 
    assets.manager.dispose(); 
    batch.dispose(); 
} 
} 

Мой MenuState класс:

public class MenuState extends State { 
private Texture background; 
private Texture logo; 
private Texture clickme; 
PlayButton play; 
Viewport viewport; 
AssetLoader assets; 



public MenuState(GameStateManager gsm, AssetLoader assets) { 
    super(gsm, assets); 
    background = assets.manager.get("textures/bg2.png", Texture.class); 
    play = new PlayButton(); 
    logo = assets.manager.get("logo.png", Texture.class); 
    clickme = assets.manager.get("clickme.png", Texture.class); 
    viewport = new StretchViewport(720, 1280, cam); 
    viewport.apply(); 
    cam.position.set(cam.viewportWidth/2, cam.viewportHeight/2,0); 

} 

@Override 
public void handleInput() { 
    if(play.isPressed()){ 
     gsm.set(new PlayState(gsm,assets)); 
    } 

} 

@Override 
public void update(float dt) { 
    handleInput(); 
    cam.update(); 

} 
@Override 
public void resize(int width, int height){ 
    viewport.update(width, height); 
    cam.position.set(cam.viewportWidth/2, cam.viewportHeight/2,0); 
} 


@Override 
public void render(SpriteBatch sb) { 
    cam.update(); 
    sb.setProjectionMatrix(cam.combined); 
    sb.begin(); 
    sb.draw(background, 0, 0, cam.viewportWidth, cam.viewportHeight); 
    sb.draw(logo, cam.viewportWidth/2 - 310 , cam.viewportHeight/2 + 100, 620, cam.viewportHeight/2 - 200); 
    sb.draw(clickme, 225, 125, 460, 450); 
    sb.end(); 
    play.act(); 
    play.draw(); 

} 
@Override 
public void dispose() { 
    background.dispose(); 
    logo.dispose(); 
    clickme.dispose(); 
} 

}

Когда я начинаю мое приложение, оно должно заложите экран меню после того, как он загрузил все его активы, но он ничего не рисует! Я не получаю никаких ошибок. Что я могу сделать?

+0

дубликат http://stackoverflow.com/questions/41987660/libgdx-assetmanager-not-loading-anything –

+1

Возможный дубликат [LibGDX AssetManager ничего не загружая] (http://stackoverflow.com/questions/41987660/libgdx-assetmanager-not-loading-anything) – Aryan

+0

Никто мне не помог, поэтому я попробовал здесь с другим. Проблема? – vladutelu

ответ

-1

вы должны вызвать manager.update() под вашу функцию рендеринга. AssetManager загружает активы async.

gameloop() or render() 
{ 
    if(mAssetManager.update()) 
    { 
     // load screen 
    } 
    else{ 
     // game 
    } 
} 
+0

'assets.manager.finishLoading();' загружает все активы и продолжается до завершения. – Madmenyo

 Смежные вопросы

  • Нет связанных вопросов^_^