AndEngine GLES 2 - 黑屏,没有错误

时间:2012-05-04 10:20:45

标签: java android andengine andengine-gles-2

我正在使用 AndEngine GLES 2 为Android编写游戏。一切都运作正常 - 我有一个背景图像,有精灵移动甚至一些音乐 - 直到最近我尝试了一些新的东西(我希望能够在两个不同的场景之间切换)当显示器变黑时。

我仍然可以执行游戏并且没有显示错误。我在游戏过程中显示的所有日志条目都显示出来,即使音乐正在播放,所以我知道游戏正在运行"正确"但我无法看到任何图像。没有。全黑。

所以我想,在此之前将所有内容都改回来"错误"出现了,会做的伎俩。但屏幕仍然是黑色的。

我甚至尝试过评论所有内容但背景图片 - 没有。

现在,如果问题不是太多,请问任何人都可以查看这段简短的代码并告诉我那里有什么问题?

这是我使用的变量

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

EngineOptions 我从未改变过,所以他们应该没问题。

@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;
}

在这里,我创建 TextureAtlas 并加载背景图片

@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);
}

最后实例化场景并附加背景。

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

现在为什么这个小活动没有显示?我忘记了:它是一个SimpleBaseGameActivity。

好吧,由于AndEngine GLES2没有在模拟器上运行,我必须使用我的手机(三星Galaxy GIO)并且无法在另一台机器上测试该应用程序。

有没有人偶然发现类似的问题? 非常感谢任何帮助,感谢您的时间!

  • 了Christoph

1 个答案:

答案 0 :(得分:1)

我认为问题在于:

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

Atlas的尺寸应该是2的幂。