public class Main extends LayoutGameActivity {
// ===========================================================
// Constants
// ===========================================================
static int CAMERA_WIDTH = 1024;
static int CAMERA_HEIGHT = 640;
static String TAG = "SandwichBar";
// ===========================================================
// Fields
// ===========================================================
private Random generator;
private Scene sceneSplash;
private Scene sceneMainMenu;
private Scene sceneGame;
private GradientSprite mainmenu;
private GradientSprite gameBack;
public void onLoadComplete() {
}
protected int getLayoutID() {
return R.layout.main;
}
protected int getRenderSurfaceViewID() {
return R.id.game_rendersurfaceview;
}
public Engine onLoadEngine() {
Camera mCamera = new Camera(0, 0, CAMERA_WIDTH,CAMERA_HEIGHT);
EngineOptions opts = new EngineOptions(
true,
ScreenOrientation.LANDSCAPE,
new FillResolutionPolicy(),
mCamera);
opts.setNeedsSound(true);
opts.setNeedsMusic(true);
opts.getRenderOptions().disableExtensionVertexBufferObjects();
final Engine engine = new Engine(
opts
);
try {
if(MultiTouch.isSupported(this)) {
engine.setTouchController(new MultiTouchController());
}
} catch (MultiTouchException e) {
}
return engine;
}
public void onLoadResources() {
generator = new Random();
}
private void unloadLoadingScene(){ }
protected Scene onAssetsLoaded() {
//################################################ //
//################## MAIN MENU ################## //
//################################################ //
sceneMainMenu = new Scene();
sceneMainMenu.setOnAreaTouchTraversalFrontToBack();
mainmenu = new GradientSprite(0, 0, this.mFaceTextureRegionMainMenu);
sceneMainMenu.setBackground(new SpriteBackground(mainmenu));
// Loaded + Added my buttons
// [..]
sceneMainMenu.attachChild(mBtnPlay);
sceneMainMenu.attachChild(mBtnInstructions);
sceneMainMenu.attachChild(mBtnHighscore);
sceneMainMenu.attachChild(mBtnAbout);
sceneMainMenu.setTouchAreaBindingEnabled(true);
sceneMainMenu.registerTouchArea(mBtnPlay);
sceneMainMenu.registerTouchArea(mBtnInstructions);
sceneMainMenu.registerTouchArea(mBtnHighscore);
sceneMainMenu.registerTouchArea(mBtnAbout);
//################################################ //
//###################### GAME #################### //
//################################################ //
sceneGame = new Scene();
sceneGame.setOnAreaTouchTraversalFrontToBack();
gameBack = new GradientSprite(0, 0, this.mFaceTextureRegionGame);
sceneGame.setBackground(new SpriteBackground(gameBack));
// Loaded game stuff
// [..]
sceneGame.attachChild(slots);
for (int iCnt = 0; iCnt < this.slot.length; iCnt++) {
sceneGame.attachChild(slot[iCnt]);
}
sceneGame.attachChild(outdoorSprite);
sceneGame.attachChild(doorLeftSprite);
sceneGame.attachChild(doorRightSprite);
sceneGame.attachChild(tablettSprite);
for (int iCnt = 0; iCnt < this.slotBig.length; iCnt++) {
sceneGame.attachChild(slotBig[iCnt]);
}
sceneGame.attachChild(bauplanFailSprite);
sceneGame.attachChild(bauplanSuccessSprite);
for (int iCnt = 0; iCnt < this.slotBigger.length; iCnt++) {
sceneGame.attachChild(slotBigger[iCnt]);
}
sceneGame.attachChild(ledBack);
for (int iCnt = 0; iCnt < this.led.length; iCnt++) {
sceneGame.attachChild(led[iCnt]);
}
sceneGame.attachChild(ledMiddle);
for (int iCnt = 0; iCnt < this.money.length; iCnt++) {
sceneGame.attachChild(money[iCnt]);
}
for (int iCnt = 0; iCnt < this.money_goal.length; iCnt++) {
sceneGame.attachChild(money_goal[iCnt]);
}
sceneGame.attachChild(pauseSprite);
sceneGame.attachChild(mBtnPause);
sceneGame.attachChild(mBtnPauseContinue);
sceneGame.attachChild(mBtnPauseMainMenu);
sceneGame.setTouchAreaBindingEnabled(true);
for (int iCnt = 0; iCnt < this.slot.length; iCnt++) {
sceneGame.registerTouchArea(slot[iCnt]);
}
sceneGame.registerTouchArea(mBtnPause);
sceneGame.registerTouchArea(mBtnPauseContinue);
sceneGame.registerTouchArea(mBtnPauseMainMenu);
sceneGame.registerUpdateHandler(new IUpdateHandler() {
public void onUpdate(float pSecondsElapsed) {
onGameUpdate(pSecondsElapsed);
}
public void reset() {
}
});
return sceneMainMenu;
}
protected void assetsToLoad() {
// EMPTY BUTTONS
this.mTextureButtons = new BitmapTextureAtlas(2, 2, TextureOptions.BILINEAR_PREMULTIPLYALPHA);
this.mFaceTextureRegionButtons = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mTextureButtons, this, "gfx/empty.png", 0, 0);
// MAIN MENU
this.mTextureMainMenu = new BitmapTextureAtlas(1024, 1024, TextureOptions.BILINEAR_PREMULTIPLYALPHA);
this.mFaceTextureRegionMainMenu = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mTextureMainMenu, this, "gfx/mainmenu.png", 0, 0);
// GAME
this.mTextureGame = new BitmapTextureAtlas(1024, 1024, TextureOptions.BILINEAR_PREMULTIPLYALPHA);
this.mFaceTextureRegionGame = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mTextureGame, this, "gfx/game.png", 0, 0);
BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/");
this.mEngine.getTextureManager().loadTextures(
this.mTextureMainMenu,
this.mTextureButtons,
this.mTextureGame
);
}
public Scene onLoadScene() {
this.mEngine.registerUpdateHandler(new FPSLogger());
//################################################ //
//##################### SPLASH ################## //
//################################################ //
sceneSplash = new Scene();
sceneSplash.setBackground(new ColorBackground(0, 0, 0));
// SPLASH
this.mTextureSplash = new BitmapTextureAtlas(1024, 1024, TextureOptions.BILINEAR_PREMULTIPLYALPHA);
this.mFaceTextureRegionSplash = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mTextureSplash, this, "gfx/splash.png", 0, 0);
this.mEngine.getTextureManager().loadTextures(this.mTextureSplash);
GradientSprite splashSprite = new GradientSprite(0, 0, this.mFaceTextureRegionSplash);
splashSprite.setPosition(0,0);
sceneSplash.attachChild(splashSprite);
IAsyncCallback callback = new IAsyncCallback() {
public void workToDo() {
assetsToLoad();
}
public void onComplete() {
unloadLoadingScene();
mEngine.setScene(onAssetsLoaded());
}
};
new AsyncTaskLoader().execute(callback);
return sceneSplash;
}
private void onGameUpdate(float pSecondsElapsed)
{
// Do game stuff
}
}