我是AndEngine的新手,正在尝试按照这篇教程来实现汉诺塔游戏。
在将背景图片插入gfx文件夹并设置所有onCreateResources代码和onCreateScene代码之后,我尝试运行应用程序,但我所能看到的只是一个代表我的背景图像的三角形,就像这张图片中所示。
以下是我的代码:
final int CAMERA_WIDTH = 480;
final int CAMERA_HEIGHT = 800;
public EngineOptions onCreateEngineOptions() {
myCamera = new Camera(800, 480, CAMERA_WIDTH, CAMERA_HEIGHT);
return new EngineOptions(false, ScreenOrientation.PORTRAIT_SENSOR,
new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT),
myCamera);
}
public ITextureRegion texture;
public void onCreateResources(
OnCreateResourcesCallback pOnCreateResourcesCallback)
throws Exception {
try {
// 1 - Set up bitmap textures
ITexture backgroundTexture = new BitmapTexture(
this.getTextureManager(), new IInputStreamOpener() {
public InputStream open() throws IOException {
return getAssets().open("gfx/background.png");
}
});
// 2 - Load bitmap textures into VRAM
backgroundTexture.load();
// 3 - Set up texture regions
this.mBackgroundTextureRegion = TextureRegionFactory
.extractFromTexture(backgroundTexture);
}
public void onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback)
throws Exception {
// 1 - Create new scene
final Scene scene = new Scene();
Sprite backgroundSprite = new Sprite(0, 0, this.mBackgroundTextureRegion, getVertexBufferObjectManager());
scene.attachChild(backgroundSprite);
}
由于我已经尝试了解决这个错误,我已经尝试过:
- 使用camera FillResolutionPolicy()设置,但对结果没有影响。
- 将背景创建为BitmapTextureAtlas,使用BitmapTextureAtlasTextureRegionFactory.createFromAsset方法。
- 调用mEngine.getScene().setBackground而不是attachChild方法。
- 重新创建Android虚拟设备,使用其他API级别(尝试了16、15)。
此外,在AndEngine论坛上有一个帖子,链接在此,但我没有找到答案。