public GameDialogBox(HUD hud, String message, int back, boolean text, ButtonSprite... buttons) { super(); dismissed = false; this.buttons = buttons; this.hud = hud; this.text = text; ResourcesManager resourcesManager = ResourcesManager.getInstance(); // Attach Background switch (back) { case 1: hud.attachChild( backgroundSprite = new Sprite(240, 400, resourcesManager.dialog_background, resourcesManager.vbom)); break; case 2: if (resourcesManager.dialog_background2 == null) { Log.d("Null", "null"); } hud.attachChild( backgroundSprite = new Sprite(240, 400, resourcesManager.dialog_background2, resourcesManager.vbom)); break; case 3: hud.attachChild( backgroundSprite = new Sprite(240, 400, resourcesManager.dialog_background3, resourcesManager.vbom)); break; default: break; } if (text) { messageText = new Text( 240, 400, resourcesManager.cartoon_font_white, message, new TextOptions( AutoWrap.WORDS, backgroundSprite.getWidth() - 100, HorizontalAlign.CENTER, Text.LEADING_DEFAULT), resourcesManager.vbom); hud.attachChild(messageText); if (400 + (backgroundSprite.getHeight() / 2) - 50 + (messageText.getHeight() / 2) > 400 + backgroundSprite.getHeight() / 2) { messageText.setPosition(240, 400 + backgroundSprite.getHeight() / 2 - 100); j = 400 + (backgroundSprite.getHeight() / 2 - 100) - messageText.getHeight() - 25; } else { messageText.setPosition(240, 400 + backgroundSprite.getHeight() / 2 - 50); j = 400 + (backgroundSprite.getHeight() / 2 - 50) - messageText.getHeight() - 25; } } else { j = 400 + ((buttons.length * 100) / 2); } int i = 0; for (ButtonSprite button : buttons) { hud.attachChild(button); button.setPosition(240, j - (100 * i)); hud.registerTouchArea(button); i++; } // hud.registerTouchArea(okayButton); }
@Override public void onLoadScene() { // mCurrentBoss = 1; // SFXManager.getInstance().loadSound("t_ko", ResourceManager.getActivity().getSoundManager(), // ResourceManager.getActivity()); System.out.println("mCurrentBoss --> " + mCurrentBoss); Sprite themeBGSprite = new Sprite(0f, 0f, ResourceManager.themeBG, mVertexBufferObjectManager); // themeBGSprite.setScale(ResourceManager.getInstance().cameraHeight / // ResourceManager.themeBG.getHeight()); themeBGSprite.setSize(mCameraWidth, mCameraHeight); themeBGSprite.setPosition(mCameraWidth / 2f, mCameraHeight / 2f); themeBGSprite.setZIndex(-90); attachChild(themeBGSprite); if (mScrollDetector == null) { mScrollDetector = new SurfaceScrollDetector(this); } mScrollDetector.setTriggerScrollMinimumDistance(10f); mBossSlider = getScensSlider(); attachChild(mBossSlider); if (isKO) { themeRInitX = themeRInitX - mCameraWidth * (mCurrentBoss - 1); // mBossSlider.registerEntityModifier(new MoveXModifier(0.3F, mBossSlider.getX(), // themeRInitX)); mBossSlider.setX(themeRInitX); } // 后退按钮 ButtonSprite backBS = new ButtonSprite(0f, 0f, ResourceManager.backTR, mVertexBufferObjectManager); EntityUtil.setSize("height", 1f / 8f, backBS); backBS.setPosition(10f + backBS.getWidth() / 2f, mCameraHeight - 10f - backBS.getHeight() / 2f); attachChild(backBS); backBS.setOnClickListener( new org.andengine.entity.sprite.ButtonSprite.OnClickListener() { @Override public void onClick( ButtonSprite pButtonSprite, float pTouchAreaLocalX, float pTouchAreaLocalY) { SFXManager.getInstance().playSound("a_click"); SceneManager.getInstance().showScene(ThemeScene.getInstance()); } }); registerTouchArea(backBS); // 主页按钮 ButtonSprite homeBS = new ButtonSprite(0f, 0f, ResourceManager.homeTR, mVertexBufferObjectManager); homeBS.setSize(backBS.getWidth(), backBS.getHeight()); homeBS.setPosition(mCameraWidth - 10f - homeBS.getWidth() / 2f, backBS.getY()); attachChild(homeBS); homeBS.setOnClickListener( new org.andengine.entity.sprite.ButtonSprite.OnClickListener() { @Override public void onClick( ButtonSprite pButtonSprite, float pTouchAreaLocalX, float pTouchAreaLocalY) { SFXManager.getInstance().playSound("a_click"); SceneManager.getInstance().showScene(MainMenuScene.getInstance()); } }); registerTouchArea(homeBS); // 向左箭头 ButtonSprite arrowLeftSprite = new ButtonSprite( 0f, 0f, ResourceManager.arrowLRTTR.getTextureRegion(0), mVertexBufferObjectManager); EntityUtil.setSize("height", 1f / 8f, arrowLeftSprite); arrowLeftSprite.setPosition(backBS.getX(), mCameraHeight / 2f); attachChild(arrowLeftSprite); arrowLeftSprite.setOnClickListener( new OnClickListener() { @Override public void onClick( ButtonSprite pButtonSprite, float pTouchAreaLocalX, float pTouchAreaLocalY) { SFXManager.getInstance().playSound("a_click"); mBossSlider.clearEntityModifiers(); if (mCurrentBoss == 1) { mBossSlider.registerEntityModifier( new MoveXModifier(0.3F, mBossSlider.getX(), mBossSlider.getWidth() / 2f)); } else { mCurrentBoss--; themeRInitX = themeRInitX + mCameraWidth; mBossSlider.registerEntityModifier( new MoveXModifier(0.3F, mBossSlider.getX(), themeRInitX)); } System.out.println("mCurrentBoss --> " + mCurrentBoss); } }); registerTouchArea(arrowLeftSprite); // 向右箭头 ButtonSprite arrowRightSprite = new ButtonSprite( 0f, 0f, ResourceManager.arrowLRTTR.getTextureRegion(1), mVertexBufferObjectManager); arrowRightSprite.setSize(arrowLeftSprite.getWidth(), arrowLeftSprite.getHeight()); arrowRightSprite.setPosition(homeBS.getX(), mCameraHeight / 2f); attachChild(arrowRightSprite); arrowRightSprite.setOnClickListener( new OnClickListener() { @Override public void onClick( ButtonSprite pButtonSprite, float pTouchAreaLocalX, float pTouchAreaLocalY) { SFXManager.getInstance().playSound("a_click"); mBossSlider.clearEntityModifiers(); if (mCurrentBoss == bossPics.length) { mBossSlider.registerEntityModifier( new MoveXModifier( 0.3F, mBossSlider.getX(), mBossSlider.getWidth() / 2f - mCameraWidth * (bossPics.length - 1))); } else { mCurrentBoss++; themeRInitX = themeRInitX - mCameraWidth; mBossSlider.registerEntityModifier( new MoveXModifier(0.3F, mBossSlider.getX(), themeRInitX)); } System.out.println("mCurrentBoss --> " + mCurrentBoss); } }); registerTouchArea(arrowRightSprite); }