Android 我的andengine项目中的黑屏

Android 我的andengine项目中的黑屏,android,andengine,Android,Andengine,在AndEngine中创建我的第一个应用程序时,我得到的只是一个黑屏,而不是背景图像和播放按钮。。 这是密码 主要活动 public class MainActivity extends BaseGameActivity { private BoundCamera camera; private float WIDTH = 800; private float HEIGHT = 480; @Override public Engine onCreateEngine(EngineOptions

在AndEngine中创建我的第一个应用程序时,我得到的只是一个黑屏,而不是背景图像和播放按钮。。 这是密码 主要活动

public class MainActivity extends BaseGameActivity {

private BoundCamera camera;
private float WIDTH = 800;
private float HEIGHT = 480;

@Override
public Engine onCreateEngine(EngineOptions engineOptions){
    return new LimitedFPSEngine(engineOptions,60);
}

@Override
public EngineOptions onCreateEngineOptions() {

    camera = new BoundCamera(0,0,WIDTH,HEIGHT);
    EngineOptions engineOptions = new
            EngineOptions(true, ScreenOrientation.LANDSCAPE_FIXED, new FillResolutionPolicy(),camera);
    engineOptions.getAudioOptions().setNeedsMusic(true).setNeedsSound(true);
    return engineOptions;
}

@Override
public void onCreateResources(OnCreateResourcesCallback pOnCreateResourcesCallback) throws IOException {

}

@Override
public void onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback) throws IOException {

}

@Override
public void onPopulateScene(Scene pScene, OnPopulateSceneCallback pOnPopulateSceneCallback) throws IOException {

}
}
BaseScene.java

public abstract class BaseScene extends Scene {

protected Engine engine;
protected Activity activity;
protected ResourceManager resourceManager;
protected VertexBufferObjectManager vbom;
protected Camera camera;

public BaseScene(){
    this.resourceManager = ResourceManager.getInstance();

    this.activity = resourceManager.activity;
    this.engine = resourceManager.engine;
    this.vbom = resourceManager.vbom;
    this.camera = resourceManager.camera;

    createScene();
}

public abstract void createScene();
public abstract void onBackKeyPressed();
public abstract SceneManager.SceneType getSceneType();
public abstract void disposeScene();
}
SceneManager.java

public class SceneManager {

private BaseScene mainMenu;
private BaseScene gameScene;

private BaseScene currentScene;

private static final SceneManager INSTANCE = new SceneManager();

private SceneType currentSceneType = SceneType.SCENE_MENU;

private Engine engine = ResourceManager.getInstance().engine;

public enum SceneType
{
    SCENE_MENU,
    SCENE_GAME
}

public void setScene(BaseScene scene){

    engine.setScene(scene);

    currentScene = scene;

    currentSceneType = scene.getSceneType();

}

public static SceneManager getInstance(){
    return INSTANCE;
}

public SceneType getSceneType(){
    return currentSceneType;
}
}
我还有两门课:MainMenu和ResourceManager
哪里出错了?

当纹理(图像)的大小大于bitMapTextureAtlus时,会出现黑屏。因此,请确保加载的bitMapTextureAtlus具有所需的大小。

至少应在游戏活动中从超类实现4个回调方法

  • onCreateEngineOptions
    :您应该在其中指定游戏引擎的主要特征。(例如照相机、渲染选项、声音选项)

  • onCreateResources
    :游戏启动后,您应该在其中加载需要立即使用的纹理和声音

  • onCreateScene
    :您应该在其中实例化游戏的第一个场景。每当用户启动游戏时,引擎将显示此游戏

  • onPopulateScene
    :实现此回调是可选的,取决于您的设计架构。但是,您应该调用给定的回调函数,让引擎继续运行

在这些方法中,为您提供了一个
pOnCreateSceneCallback
对象。在该方法中完成后,应调用此对象。你必须这样做,否则你的引擎会卡住,无法加载游戏

开始使用AndEngine


首先,您不需要在OnCreateSecene中创建场景……此外,您还必须在主活动中的onCreate方法中调用回调。您可以向我们展示您的资源管理器。根据您的描述,这就是问题所在。如黑屏。您的背景图像和菜单按钮可能比纹理图集大。