您的位置:首页 > 其它

andengine 创建菜单的另一种方法

2016-07-27 17:51 393 查看
public class MainActivity extends
BaseGameActivity  implements
IOnMenuItemClickListener{

 private static final int CAMERA_WIDTH =
480;

 private static final int CAMERA_HEIGHT =
800;

 private Camera mCamera;

 private BitmapTextureAtlas fonttexture,bgt;

 private TextureRegion bg;

 private Font font;

 private Scene scene;

 MenuScene menuscene;

 TextMenuItem
musicoff,musicon,effectson,effectsoff;

 IMenuItem musicitem;

 IMenuItem effectsitem;

 static final int menu_music=0;

 static final int menu_effects=menu_music+1;

 boolean ismusic=true;

 boolean iseffects=true;

 @Override

 public EngineOptions onCreateEngineOptions()
{

  // TODO 自动生成的方法存根

  mCamera=new Camera(0, 0,
CAMERA_WIDTH, CAMERA_HEIGHT);

  EngineOptions
mEngineOptions=new EngineOptions(true,
ScreenOrientation.PORTRAIT_SENSOR,

   new RatioResolutionPolicy(CAMERA_WIDTH,
CAMERA_HEIGHT), mCamera);

  return mEngineOptions;

 }

 @Override

 public void
onCreateResources(OnCreateResourcesCallback arg0)

   throws
Exception {

  // TODO 自动生成的方法存根

  fonttexture=new
BitmapTextureAtlas(getTextureManager(), 256, 256);

  font=new Font(getFontManager(),
fonttexture,

    Typeface.create(Typeface.DEFAULT,
Typeface.BOLD), 40, true, Color.RED);

  fonttexture.load();

  font.load();

      

  bgt=new
BitmapTextureAtlas(getTextureManager(), 480, 800);

  bg=BitmapTextureAtlasTextureRegionFactory.createFromAsset(bgt,
getAssets(), "111.jpg", 0, 0);

  bgt.load();

  

  musicon=new
TextMenuItem(menu_music, font, "music on",
getVertexBufferObjectManager());

  musicoff=new
TextMenuItem(menu_music, font, "music off",
getVertexBufferObjectManager());

  effectson=new
TextMenuItem(menu_effects, font,"effects on",
getVertexBufferObjectManager());

  effectsoff=new
TextMenuItem(menu_effects, font, "effects off",
getVertexBufferObjectManager());

  arg0.onCreateResourcesFinished();

 }

 @Override

 public void onCreateScene(OnCreateSceneCallback
arg0) throws Exception {

  // TODO
自动生成的方法存根 

  createmenu();

  scene=new Scene();

   float
centerX=(CAMERA_WIDTH-bg.getWidth())/2;

   float
centerY=(CAMERA_HEIGHT-bg.getHeight())/2;

   Sprite menuback=new
Sprite(centerX, centerY, bg, getVertexBufferObjectManager());

  scene.attachChild(menuback);

  scene.setChildScene(menuscene);

 

 arg0.onCreateSceneFinished(scene);

 }

 @Override

 public void onPopulateScene(Scene arg0,
OnPopulateSceneCallback arg1)

   throws
Exception {

  // TODO 自动生成的方法存根

    

  arg1.onPopulateSceneFinished();

 }

public void createmenu(){

  menuscene=new MenuScene(mCamera);

 if(ismusic){

 musicitem=new ColorMenuItemDecorator(new
TextMenuItem(menu_music, font, "music off",
this.getVertexBufferObjectManager()), new Color(0,0,0), new
Color(1,0,0));

  }else{

musicitem=new ColorMenuItemDecorator(new
TextMenuItem(menu_music, font, "music on",
this.getVertexBufferObjectManager()), new Color(0,0,0), new
Color(1,0,0));

  }

 menuscene.addMenuItem(musicitem); 

 

if(iseffects){

effectsitem=new ColorMenuItemDecorator(new
TextMenuItem(menu_effects, font, "effects off",
this.getVertexBufferObjectManager()), new Color(1,0,0), new
Color(0,0,0));

}else{

effectsitem=new ColorMenuItemDecorator(new
TextMenuItem(menu_effects, font, "effects on",
this.getVertexBufferObjectManager()), new Color(1,0,0), new
Color(0,0,0));

}

 menuscene.addMenuItem(effectsitem);

   
menuscene.buildAnimations();

   
menuscene.setBackgroundEnabled(false);

   
menuscene.setOnMenuItemClickListener(this);

 

}

@Override

public boolean onMenuItemClicked(MenuScene pMenuScene, IMenuItem
pIMenuItem, float arg2,

  float arg3) {

 // TODO 自动生成的方法存根

 Log.i(String.valueOf(pIMenuItem.getID()),String.valueOf(pIMenuItem.getID()));

 switch(pIMenuItem.getID()){

 case menu_music:

  if(ismusic){

  ismusic=false;

 }else{

  ismusic=true;

 }

 createmenu();

   
scene.clearChildScene();

 scene.setChildScene(menuscene);

 return true;

 case menu_effects:

  if(iseffects){

  iseffects=false;

 }else{

  iseffects=true;

 }

 createmenu();

 scene.clearChildScene();

 scene.setChildScene(menuscene);

 return true;

 default:return false;

 }

 

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: