Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AndEngine GLES 2 - black screen, no errors

I am writing a game for Android using AndEngine GLES 2. Everything was working properly - I had a background image, there were sprites moving around and even some music - until recently I tried something new (I wanted to be able to switch between two different scenes) when the display turned black.

I could still execute the game and there were no error shown. All log entries I made during the game were shown, even the music was playing so I knew the game was running "properly", but I couldn't see any image. Nothing. All black.

So I thought, changing everything back to before this "error" appeared, would do the trick. But still the screen is black.

I even tried commenting everything out but the background image - nothing.

Now if it is not too much to ask, could anyone please look over this short piece of code and tell me what is wrong there?

This are the variables I use:

private SmoothCamera camera;
private BitmapTextureAtlas bitmapTextureAtlas;  
private Scene scene;
private Sprite background;

The EngineOptions I never changed, so they should be alright.

@Override
public EngineOptions onCreateEngineOptions() {
    float positionX = 80f; // horizontal (x) position of the camera
    float positionY = 280f; // vertical (y) position of the camera
    float velocityX = 200f; // velocity of the horizontal camera movement
    float velocityY = 200f; // velocity of the vertical camera movement
    float zoomFactor = 1f; // the camera's zoom Factor (standard := 1)
    this.camera = new SmoothCamera(positionX, positionY, this.getWindowManager().getDefaultDisplay().getWidth(), this.getWindowManager().getDefaultDisplay().getHeight(), velocityX, velocityY, zoomFactor);
    EngineOptions options = new EngineOptions(true, ScreenOrientation.LANDSCAPE_SENSOR, new RatioResolutionPolicy(this.camera.getWidth(), this.camera.getHeight()), this.camera);
    return options;
}

Here I create the TextureAtlas and load a background image.

@Override
protected void onCreateResources() {
    // create the TextureAtlas
    BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/");
    this.bitmapTextureAtlas = new BitmapTextureAtlas(this.getTextureManager(), 1024, 1600, TextureOptions.NEAREST);

    // background
    this.background = new Sprite(0, 0, BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.bitmapTextureAtlas, this, "background.png", 0, 0, 1, 1), this.getVertexBufferObjectManager());
    this.mEngine.getTextureManager().loadTexture(this.bitmapTextureAtlas);
}

And finally the Scene is instantiated and the background gets attached.

@Override
protected Scene onCreateScene() {
    this.scene = new Scene();
    this.scene.attachChild(this.background);        
    return this.scene;
}

Now why would this small Activity not show? I forgot: its a SimpleBaseGameActivity.

Well, since AndEngine GLES2 is not running on the emulator, I have to use my phone (Samsung Galaxy GIO) and can't test the app on another machine.

Did anyone stumble upon a similar problem? Any help is really much appreciated and thank you for your time !

  • Christoph
like image 696
GameDroids Avatar asked Nov 14 '22 06:11

GameDroids


1 Answers

I think the problem is here:

this.bitmapTextureAtlas = new BitmapTextureAtlas(this.getTextureManager(), 1024, 1600, TextureOptions.NEAREST);

The dimensions of the Atlas are supposed to be powers of 2.

like image 178
Joseph Herraez Avatar answered Nov 16 '22 02:11

Joseph Herraez