Hello all,
I am starting to create my first android app using eclipse and using AndEngine. I created my main menu using parts and pieces off of templates. Running my app on my phone or on a emulator i get a black screen. I looked at this code over and over again! What am i missing
Here is my code
mainmenu.java
package com.ics.mainmenu;
public class MainMenuScene extends SimpleBaseGameActivity implements IOnMenuItemClickListener
{
private final float WIDTH = 480;
private final float HEIGHT = 720;
private Camera camera;
private Scene mainScene;
private MenuScene menuScene;
private Music mMusic;
private final int MENU_PLAY = 0;
private final int MENU_SETTINGS = 1;
private final int MENU_INFORMATION = 2;
private final int MENU_LEADERBOARD = 3;
private final int MENU_STORE = 4;
private BuildableBitmapTextureAtlas menuBtnTex;
private ITextureRegion menuBtnPlayReg;
private ITextureRegion menuBtnSettingsReg;
private ITextureRegion menuBtnInformationReg;
private ITextureRegion menuBtnLeaderboardReg;
private ITextureRegion menuBtnStoreReg;
private ITextureRegion mBackgroundTextureRegion;
@Override
public EngineOptions onCreateEngineOptions()
{
// TODO Auto-generated method stub
camera = new Camera(0, 0, WIDTH, HEIGHT);
EngineOptions en = new EngineOptions(true, ScreenOrientation.PORTRAIT_FIXED, new RatioResolutionPolicy(WIDTH,
HEIGHT), camera);
return en;
}
@Override
protected void onCreateResources()
{
// TODO Auto-generated method stub
BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/menu");
menuBtnTex = new BuildableBitmapTextureAtlas(getTextureManager(), 1024, 128,
TextureOptions.BILINEAR_PREMULTIPLYALPHA);
menuBtnPlayReg = BitmapTextureAtlasTextureRegionFactory.createFromAsset(menuBtnTex, getAssets(), "play.png");
menuBtnSettingsReg = BitmapTextureAtlasTextureRegionFactory.createFromAsset(menuBtnTex, getAssets(), "settings.png");
menuBtnInformationReg = BitmapTextureAtlasTextureRegionFactory.createFromAsset(menuBtnTex, getAssets(), "information.png");
menuBtnLeaderboardReg = BitmapTextureAtlasTextureRegionFactory.createFromAsset(menuBtnTex, getAssets(), "leaderboard.png");
menuBtnStoreReg = BitmapTextureAtlasTextureRegionFactory.createFromAsset(menuBtnTex, getAssets(), "store.png");
try
{
menuBtnTex.build(new BlackPawnTextureAtlasBuilder<IBitmapTextureAtlasSource, BitmapTextureAtlas>(0, 1, 0));
menuBtnTex.load();
} catch (TextureAtlasBuilderException e)
{
// TODO: handle exception
}
//Background Music
MusicFactory.setAssetBasePath("mfx/");
try {
this.mMusic = MusicFactory.createMusicFromAsset(this.mEngine.getMusicManager(), this, "wagner_the_ride_of_the_valkyries.ogg");
this.mMusic.setLooping(true);
} catch (final IOException e) {
Debug.e("Error", e);
}
}
@Override
protected Scene onCreateScene()
{
// TODO Auto-generated method stub
mainScene = new Scene();
Sprite backgroundSprite = new Sprite(0, 0, WIDTH, HEIGHT, this.mBackgroundTextureRegion, getVertexBufferObjectManager());
SpriteBackground bgSprite = new SpriteBackground(backgroundSprite);
mainScene.setBackground(bgSprite);
menuScene = new MenuScene(camera);
menuScene.setPosition(240, 400);
final IMenuItem playButton = new ScaleMenuItemDecorator(new SpriteMenuItem(MENU_PLAY, 200, 70, menuBtnPlayReg,
getVertexBufferObjectManager()), 1.1f, 1);
final IMenuItem settingsButton = new ScaleMenuItemDecorator(new SpriteMenuItem(MENU_SETTINGS, 200, 70, menuBtnSettingsReg,
getVertexBufferObjectManager()), 1.1f, 1);
final IMenuItem informationButton = new ScaleMenuItemDecorator(new SpriteMenuItem(MENU_INFORMATION, 200, 70, menuBtnInformationReg,
getVertexBufferObjectManager()), 1.1f, 1);
final IMenuItem leaderboardButton = new ScaleMenuItemDecorator(new SpriteMenuItem(MENU_LEADERBOARD, 200, 70, menuBtnLeaderboardReg,
getVertexBufferObjectManager()), 1.1f, 1);
final IMenuItem storeButton = new ScaleMenuItemDecorator(new SpriteMenuItem(MENU_STORE, 200, 70, menuBtnStoreReg,
getVertexBufferObjectManager()), 1.1f, 1);
playButton.setPosition(WIDTH / 2 - playButton.getWidth() / 2, 100);
settingsButton.setPosition(WIDTH / 2 - settingsButton.getWidth() / 2, 100);
informationButton.setPosition(WIDTH / 2 - informationButton.getWidth() / 2, 100);
leaderboardButton.setPosition(WIDTH / 2 - leaderboardButton.getWidth() / 2, 100);
storeButton.setPosition(WIDTH / 2 - storeButton.getWidth() / 2, 100);
menuScene.addMenuItem(playButton);
menuScene.addMenuItem(settingsButton);
menuScene.addMenuItem(informationButton);
menuScene.addMenuItem(leaderboardButton);
menuScene.addMenuItem(storeButton);
menuScene.buildAnimations();
menuScene.setBackgroundEnabled(true);
menuScene.setOnMenuItemClickListener(this);
mainScene.setChildScene(menuScene);
return mainScene;
}
@Override
public boolean onMenuItemClicked(MenuScene pMenuScene, IMenuItem pMenuItem, float pMenuItemLocalX,
float pMenuItemLocalY)
{
// TODO Auto-generated method stub
switch (pMenuItem.getID())
{
case MENU_PLAY:
// when click play
break;
case MENU_SETTINGS:
// when click options
break;
case MENU_INFORMATION:
// when click options
break;
case MENU_LEADERBOARD:
// when click options
break;
case MENU_STORE:
// when click options
break;
}
return false;
}
}
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ics.mainmenu"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainMenuScene"
android:label="@string/app_name"
android:configChanges="orientation">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
I am starting to create my first android app using eclipse and using AndEngine. I created my main menu using parts and pieces off of templates. Running my app on my phone or on a emulator i get a black screen. I looked at this code over and over again! What am i missing

Here is my code
mainmenu.java
package com.ics.mainmenu;
public class MainMenuScene extends SimpleBaseGameActivity implements IOnMenuItemClickListener
{
private final float WIDTH = 480;
private final float HEIGHT = 720;
private Camera camera;
private Scene mainScene;
private MenuScene menuScene;
private Music mMusic;
private final int MENU_PLAY = 0;
private final int MENU_SETTINGS = 1;
private final int MENU_INFORMATION = 2;
private final int MENU_LEADERBOARD = 3;
private final int MENU_STORE = 4;
private BuildableBitmapTextureAtlas menuBtnTex;
private ITextureRegion menuBtnPlayReg;
private ITextureRegion menuBtnSettingsReg;
private ITextureRegion menuBtnInformationReg;
private ITextureRegion menuBtnLeaderboardReg;
private ITextureRegion menuBtnStoreReg;
private ITextureRegion mBackgroundTextureRegion;
@Override
public EngineOptions onCreateEngineOptions()
{
// TODO Auto-generated method stub
camera = new Camera(0, 0, WIDTH, HEIGHT);
EngineOptions en = new EngineOptions(true, ScreenOrientation.PORTRAIT_FIXED, new RatioResolutionPolicy(WIDTH,
HEIGHT), camera);
return en;
}
@Override
protected void onCreateResources()
{
// TODO Auto-generated method stub
BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/menu");
menuBtnTex = new BuildableBitmapTextureAtlas(getTextureManager(), 1024, 128,
TextureOptions.BILINEAR_PREMULTIPLYALPHA);
menuBtnPlayReg = BitmapTextureAtlasTextureRegionFactory.createFromAsset(menuBtnTex, getAssets(), "play.png");
menuBtnSettingsReg = BitmapTextureAtlasTextureRegionFactory.createFromAsset(menuBtnTex, getAssets(), "settings.png");
menuBtnInformationReg = BitmapTextureAtlasTextureRegionFactory.createFromAsset(menuBtnTex, getAssets(), "information.png");
menuBtnLeaderboardReg = BitmapTextureAtlasTextureRegionFactory.createFromAsset(menuBtnTex, getAssets(), "leaderboard.png");
menuBtnStoreReg = BitmapTextureAtlasTextureRegionFactory.createFromAsset(menuBtnTex, getAssets(), "store.png");
try
{
menuBtnTex.build(new BlackPawnTextureAtlasBuilder<IBitmapTextureAtlasSource, BitmapTextureAtlas>(0, 1, 0));
menuBtnTex.load();
} catch (TextureAtlasBuilderException e)
{
// TODO: handle exception
}
//Background Music
MusicFactory.setAssetBasePath("mfx/");
try {
this.mMusic = MusicFactory.createMusicFromAsset(this.mEngine.getMusicManager(), this, "wagner_the_ride_of_the_valkyries.ogg");
this.mMusic.setLooping(true);
} catch (final IOException e) {
Debug.e("Error", e);
}
}
@Override
protected Scene onCreateScene()
{
// TODO Auto-generated method stub
mainScene = new Scene();
Sprite backgroundSprite = new Sprite(0, 0, WIDTH, HEIGHT, this.mBackgroundTextureRegion, getVertexBufferObjectManager());
SpriteBackground bgSprite = new SpriteBackground(backgroundSprite);
mainScene.setBackground(bgSprite);
menuScene = new MenuScene(camera);
menuScene.setPosition(240, 400);
final IMenuItem playButton = new ScaleMenuItemDecorator(new SpriteMenuItem(MENU_PLAY, 200, 70, menuBtnPlayReg,
getVertexBufferObjectManager()), 1.1f, 1);
final IMenuItem settingsButton = new ScaleMenuItemDecorator(new SpriteMenuItem(MENU_SETTINGS, 200, 70, menuBtnSettingsReg,
getVertexBufferObjectManager()), 1.1f, 1);
final IMenuItem informationButton = new ScaleMenuItemDecorator(new SpriteMenuItem(MENU_INFORMATION, 200, 70, menuBtnInformationReg,
getVertexBufferObjectManager()), 1.1f, 1);
final IMenuItem leaderboardButton = new ScaleMenuItemDecorator(new SpriteMenuItem(MENU_LEADERBOARD, 200, 70, menuBtnLeaderboardReg,
getVertexBufferObjectManager()), 1.1f, 1);
final IMenuItem storeButton = new ScaleMenuItemDecorator(new SpriteMenuItem(MENU_STORE, 200, 70, menuBtnStoreReg,
getVertexBufferObjectManager()), 1.1f, 1);
playButton.setPosition(WIDTH / 2 - playButton.getWidth() / 2, 100);
settingsButton.setPosition(WIDTH / 2 - settingsButton.getWidth() / 2, 100);
informationButton.setPosition(WIDTH / 2 - informationButton.getWidth() / 2, 100);
leaderboardButton.setPosition(WIDTH / 2 - leaderboardButton.getWidth() / 2, 100);
storeButton.setPosition(WIDTH / 2 - storeButton.getWidth() / 2, 100);
menuScene.addMenuItem(playButton);
menuScene.addMenuItem(settingsButton);
menuScene.addMenuItem(informationButton);
menuScene.addMenuItem(leaderboardButton);
menuScene.addMenuItem(storeButton);
menuScene.buildAnimations();
menuScene.setBackgroundEnabled(true);
menuScene.setOnMenuItemClickListener(this);
mainScene.setChildScene(menuScene);
return mainScene;
}
@Override
public boolean onMenuItemClicked(MenuScene pMenuScene, IMenuItem pMenuItem, float pMenuItemLocalX,
float pMenuItemLocalY)
{
// TODO Auto-generated method stub
switch (pMenuItem.getID())
{
case MENU_PLAY:
// when click play
break;
case MENU_SETTINGS:
// when click options
break;
case MENU_INFORMATION:
// when click options
break;
case MENU_LEADERBOARD:
// when click options
break;
case MENU_STORE:
// when click options
break;
}
return false;
}
}
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ics.mainmenu"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainMenuScene"
android:label="@string/app_name"
android:configChanges="orientation">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>