Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.jong.angryballs;
- import org.anddev.andengine.entity.scene.Scene;
- import org.anddev.andengine.entity.scene.background.ColorBackground;
- import org.anddev.andengine.entity.scene.Scene.IOnAreaTouchListener;
- import org.anddev.andengine.entity.text.Text;
- import org.anddev.andengine.input.touch.TouchEvent;
- import org.anddev.andengine.opengl.font.Font;
- import org.anddev.andengine.util.Callback;
- public class MainMenuScene extends Scene implements IOnAreaTouchListener {
- // ===========================================================
- // Constants
- // ===========================================================
- public static final int MENU_START = 1;
- public static final int MENU_HISCORES = 2;
- public static final int MENU_CREDITS = 3;
- public static final int MENU_SETTINGS = 4;
- public static final int MENU_LEADERBOARDS = 5;
- public final static int CAMERA_WIDTH = GameActivity.CAMERA_WIDTH;
- public final static int CAMERA_HEIGHT = GameActivity.CAMERA_HEIGHT;
- // ===========================================================
- // Fields
- // ===========================================================
- final Callback<Integer> mCallOnMenuClick;
- // ===========================================================
- // Constructors
- // ===========================================================
- /**
- * Creates a new main menu scene
- * @param pFont The font to use.
- * @param callOnMenuClick Called when a menu item is clicked.
- */
- public MainMenuScene(final Font pFont, Callback<Integer> callOnMenuClick) {
- super();
- this.mCallOnMenuClick = callOnMenuClick;
- final Text startText = new Text(0, 0, pFont, "Start");
- final Text hiscoresText = new Text(0, 0, pFont, "Hiscores");
- final Text leaderboardsText = new Text(0, 0, pFont, "Leaderboards");
- final Text settingsText = new Text(0, 0, pFont, "Settings");
- final Text creditsText = new Text(0, 0, pFont, "Credits");
- startText.setUserData(MENU_START);
- hiscoresText.setUserData(MENU_HISCORES);
- leaderboardsText.setUserData(MENU_LEADERBOARDS);
- settingsText.setUserData(MENU_SETTINGS);
- creditsText.setUserData(MENU_CREDITS);
- final float totalHeight = startText.getHeight() + 20 + hiscoresText.getHeight() + 20 + leaderboardsText.getHeight() + 20 + settingsText.getHeight() + 20 + creditsText.getHeight();
- float maxWidth = Math.max(startText.getWidth(), hiscoresText.getWidth());
- maxWidth = Math.max(maxWidth, leaderboardsText.getWidth());
- maxWidth = Math.max(maxWidth, settingsText.getWidth());
- maxWidth = Math.max(maxWidth, creditsText.getWidth());
- final float x = CAMERA_WIDTH/2 - maxWidth/2;
- final float y = CAMERA_HEIGHT/2 - totalHeight/2;
- startText.setPosition(x, y);
- hiscoresText.setPosition(x, startText.getY() + startText.getHeight() + 20);
- leaderboardsText.setPosition(x, hiscoresText.getY() + hiscoresText.getHeight() + 20);
- settingsText.setPosition(x, leaderboardsText.getY() + leaderboardsText.getHeight() + 20);
- creditsText.setPosition(x, settingsText.getY() + settingsText.getHeight() + 20);
- this.attachChild(startText);
- this.attachChild(hiscoresText);
- this.attachChild(leaderboardsText);
- this.attachChild(settingsText);
- this.attachChild(creditsText);
- this.registerTouchArea(startText);
- this.registerTouchArea(hiscoresText);
- this.registerTouchArea(leaderboardsText);
- this.registerTouchArea(settingsText);
- this.registerTouchArea(creditsText);
- this.setOnAreaTouchListener(this);
- this.setBackgroundEnabled(true);
- this.setBackground(new ColorBackground(0.09804f, 0.6274f, 0.8784f));
- }
- // ===========================================================
- // Getter & Setter
- // ===========================================================
- // ===========================================================
- // Methods for/from SuperClass/Interfaces
- // ===========================================================
- @Override
- public boolean onAreaTouched(TouchEvent pSceneTouchEvent,
- ITouchArea pTouchArea, float pTouchAreaLocalX,
- float pTouchAreaLocalY) {
- if(pSceneTouchEvent.isActionDown()) {
- if(pTouchArea instanceof Text)
- this.mCallOnMenuClick.onCallback((Integer)((Text)pTouchArea).getUserData());
- }
- return false;
- }
- // ===========================================================
- // Methods
- // ===========================================================
- // ===========================================================
- // Inner and Anonymous Classes
- // ===========================================================
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement