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;
}
}
}
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;
}
}
}
相关文章推荐
- 界面跳转弹出动画
- spring事务的传播特性(7种)
- 菜单的创建 并加入实体菜单键…
- 静态内部类和非静态内部类的区别
- 菜单的创建
- PhysicsWorld 物理规则
- 异步复位和同步复位
- 人物绕着屏幕走
- 飞机
- 监听屏幕点击次数并显示
- andengine背景设置另一种方法
- Struts2学习(四)OGNL标签介绍
- andengine背景
- Java跳出循环-break和continue语句
- Xcode中Build Configuration配置使用
- 深入理解RxJava的Side Effect Methods
- C++中输出指定位数的小数
- 架构图
- ios数据存储——数据库:SQlite3以及第三方库FMDB
- SqlServer与MySql的一些常用用法的差别