I loaded and get a texture from assetmanager but whenever I test the app it only shows black rectangles instead of the texture. I tried finding some probable cause for this in my code but I can't find any. Here's my code:
MainGame.java
public class MainGame extends Game { ... ... @Override public void create () { EnemyAssets.load(); EnemyAssets.manager.finishLoading(); screenWidth = Gdx.graphics.getWidth(); screenHeight = Gdx.graphics.getHeight(); camera = new OrthographicCamera(); camera.setToOrtho(false,screenWidth, screenHeight); batch = new SpriteBatch(); } @Override public void render () { super.render(); batch.begin(); batch.end(); } @Override public void dispose () { batch.dispose(); EnemyAssets.dispose(); } EnemyAnimation.java: (Here is where I get the asset from AssetsManager)
public class EnemyAnimation extends Actor{ MainGame app; LevelOneScreen levelOneScreen; private Animation enemyAnimation; private static final int FRAME_COLS_WALK = 10; private static final int FRAME_ROWS_WALK= 1; public TextureRegion currentFrame; public float enemyW; public float enemyH; public float enemyWidth; public float enemyHeight; private float stateTime = 0f; public float enemyX; public float enemyY; final float delta = Gdx.graphics.getDeltaTime(); public float enemyXBound; public float enemyYBound; public EnemyAnimation(final MainGame app) { this.app = app; this.enemyX = enemyX; this.enemyY = enemyY; Texture enemySprite = EnemyAssets.manager.get("enemySprite.png",Texture.class); enemySprite.setFilter(Texture.TextureFilter.MipMapLinearNearest,Texture.TextureFilter.MipMapLinearNearest); TextureRegion[][] tmp = TextureRegion.split(enemySprite, (int) enemySprite.getWidth() / FRAME_COLS_WALK, (int) enemySprite.getHeight() / FRAME_ROWS_WALK); TextureRegion[] enemyTexRegion = new TextureRegion[FRAME_COLS_WALK * FRAME_ROWS_WALK]; int index = 0 ; for (int i = 0; i < FRAME_ROWS_WALK; i++) { for (int j = 0; j < FRAME_COLS_WALK; j++) { enemyTexRegion[index++] = tmp[i][j]; } } enemyAnimation = new Animation(0.044f,enemyTexRegion); currentFrame = enemyAnimation.getKeyFrame(stateTime, true); enemyW = currentFrame.getRegionWidth(); enemyH= currentFrame.getRegionHeight(); enemyXBound = getX(); enemyYBound = getY(); enemyWidth = app.screenWidth*0.166667f; enemyHeight = enemyWidth *(enemyH/enemyW); this.setSize(enemyWidth, enemyHeight); this.setBounds(enemyXBound,enemyYBound,enemyWidth,enemyHeight); this.isTouchable(); } public void draw(Batch batch, float parentAlpha) { super.draw(batch, parentAlpha); final float delta = Gdx.graphics.getDeltaTime(); stateTime += delta; TextureRegion currentFrame = enemyAnimation.getKeyFrame(stateTime, true); batch.draw(currentFrame,getX(),getY(),enemyWidth,enemyHeight); } } EnemyAssets.java (Here is my AssetsManager)
public class EnemyAssets { public static final AssetManager manager = new AssetManager(); public static void load(){ manager.load("enemySprite.png",Texture.class); } public static void dispose(){ manager.dispose(); } } LevelOneScreen.java
public class LevelOneScreen implements Screen { public MainGame app; private Stage stage; private Stage stageNinja; public EnemyAnimation enemyAnimation; private float deltaTime = Gdx.graphics.getDeltaTime(); public Array<EnemyAnimation> enemyAnimate; public LevelOneScreen(final MainGame app){ this.app = app; this.stage = new Stage(new StretchViewport(app.screenWidth, app.screenHeight, app.camera)); this.stageNinja = new Stage(new StretchViewport(app.screenWidth, app.screenHeight, app.camera)); enemyAnimate = new Array<EnemyAnimation>(); enemyAnimate.add(new EnemyAnimation(app)); enemyAnimation = new EnemyAnimation(app); } @Override public void show() { InputMultiplexer inputMultiplexer = new InputMultiplexer(); inputMultiplexer.addProcessor(stage); inputMultiplexer.addProcessor(stageNinja); Gdx.input.setInputProcessor(inputMultiplexer); enemyAct1(); } public void enemyAct1(){ for(int i = 1; i < 6; i++){enemyAnimate.add(new EnemyAnimation(app));} enemyAnimate.get(1).setPosition(app.screenWidth*0.1f,app.screenHeight); stageNinja.addActor(enemyAnimate.get(1)); enemyAnimate.get(1).addAction(moveTo(app.screenWidth*0.1f,enemyDestination,enemyTimeDrop1)); enemyAnimate.get(2).setPosition(app.screenWidth*0.1f+enemyAnimation.enemyWidth,app.screenHeight+enemyAnimation.enemyHeight); stageNinja.addActor(enemyAnimate.get(2)); enemyAnimate.get(2).addAction(moveTo(app.screenWidth*0.1f+enemyAnimation.enemyWidth,enemyDestination,enemyTimeDrop2)); enemyAnimate.get(3).setPosition(app.screenWidth*0.1f+enemyAnimation.enemyWidth*2f,app. stageNinja.addActor(enemyAnimate.get(3)); enemyAnimate.get(3).addAction(moveTo(app.screenWidth*0.1f+enemyAnimation.enemyWidth*2f,enemyDestination,enemyTimeDrop3)); } @Override public void render(float delta) { Gdx.gl.glClearColor(0, 0, 0, 1); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); update(delta); } public void update(float deltaTime){ stage.draw(); stageNinja.draw(); stage.act(deltaTime); stageNinja.act(deltaTime); app.batch.begin(); app.batch.end(); } @Override public void resize(int width, int height) { app.camera.setToOrtho(false, app.screenWidth, app.screenHeight); app.camera.update(); stage.getViewport().setScreenSize(app.screenWidth, app.screenHeight); stageNinja.getViewport().setScreenSize(app.screenWidth, app.screenHeight); } @Override public void dispose() { stage.dispose(); stageNinja.dispose(); } }