您的位置:首页 > 其它

界面跳转弹出动画

2016-07-27 17:51 357 查看
两个Activity

MainActivity.java

public class MainActivity extends
BaseGameActivity  {

 private static final int CAMERA_WIDTH =
800;

 private static final int CAMERA_HEIGHT =
480;

 private Camera mCamera;

 private BitmapTextureAtlas
fonttexture,buttontexture,bgt;

 private TextureRegion buttonbg,bg;

 private Scene menuscene;

 private Font font;

 private Scene scene;

  Text text1,text2,text3;

 ButtonSprite buttonsprite;

 boolean menukey;

 Handler mHandler;

 @Override

 public EngineOptions onCreateEngineOptions()
{

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

  mHandler =new Handler();

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

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

   new RatioResolutionPolicy(CAMERA_WIDTH,
CAMERA_HEIGHT), mCamera);

  return mEngineOptions;

 }

 @Override

 public  void onResumeGame()
{

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

  super.onResumeGame();

  scene.registerEntityModifier(new
ScaleAtModifier(1f, 0.0f, 1.0f, CAMERA_WIDTH,
CAMERA_HEIGHT));

  menuscene.registerEntityModifier(new
ScaleAtModifier(1f, 0.0f, 1.0f, 0, 0));

 }

 @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), 32, true, Color.RED);

  fonttexture.load();

  font.load();

  

  buttontexture=new
BitmapTextureAtlas(getTextureManager(), 100, 66);

  buttonbg=BitmapTextureAtlasTextureRegionFactory.createFromAsset(buttontexture,
getAssets(), "ass.jpg",

   0,0);

  buttontexture.load();

  

  bgt=new
BitmapTextureAtlas(getTextureManager(), 1000, 666);

  bg=BitmapTextureAtlasTextureRegionFactory.createFromAsset(bgt,
getAssets(), "miss.JPG", 0, 0);

  bgt.load();

  

  arg0.onCreateResourcesFinished();

 }

 @Override

 public void onCreateScene(OnCreateSceneCallback
arg0) throws Exception {

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

  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);

       
buttonsprite=new ButtonSprite(0, 0, buttonbg,
getVertexBufferObjectManager());

  buttonsprite.setOnClickListener(new
OnClickListener() {

   

   @Override

   public void
onClick(ButtonSprite arg0, float arg1, float arg2) {

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

    Log.i("aa",
"aaa");

    scene.detachChild(buttonsprite);

    menukey=true;

    scene.setChildScene(menuscene);
    menuscene.registerEntityModifier(new
ScaleAtModifier(0.5f, 0, 1, 0, 0));

   }

  });

 scene.attachChild(buttonsprite);

 scene.registerTouchArea(buttonsprite);

 createmenu();

 arg0.onCreateSceneFinished(scene);

 }

 @Override

 public void onPopulateScene(Scene arg0,
OnPopulateSceneCallback arg1)

   throws
Exception {

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

    

  arg1.onPopulateSceneFinished();

 }

 @Override

 public boolean onKeyDown(int keyCode, KeyEvent
event) {

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

  if(keyCode==KeyEvent.KEYCODE_MENU&&event.getAction()==KeyEvent.ACTION_DOWN

    ){Log.i("key",
"key");

   if(menukey){

    scene.clearChildScene();

    scene.attachChild(buttonsprite);

    menukey=false;

   }else

   {

    scene.detachChild(buttonsprite);

    scene.setChildScene(menuscene);

    menukey=true;

   }

   return
true;

  }else{

  return super.onKeyDown(keyCode,
event);

  }

 }

public void createmenu(){

 menuscene=new Scene();

  ButtonSprite button1=new ButtonSprite(100,
100, buttonbg, getVertexBufferObjectManager());

  text1=new Text(0,0, font, "button1",
getVertexBufferObjectManager());

 button1.attachChild(text1);

 button1.setOnClickListener(new
button1click());

 

 ButtonSprite button2=new ButtonSprite(100, 200,
buttonbg, getVertexBufferObjectManager());

 text2=new Text(0,0, font, "button2",
getVertexBufferObjectManager());

 button2.attachChild(text2);

 button2.setOnClickListener(new OnClickListener()
{

  

  @Override

  public void
onClick(ButtonSprite arg0, float arg1, float arg2) {

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

   

   Log.i("2",
"button2");

  }

 });

 ButtonSprite button3=new ButtonSprite(100, 300,
buttonbg, getVertexBufferObjectManager());

  text3=new Text(0,0, font, "button3",
getVertexBufferObjectManager());

  button3.attachChild(text3);

 button3.setOnClickListener(new OnClickListener()
{

  

  @Override

  public void
onClick(ButtonSprite arg0, float arg1, float arg2) {

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

   scene.clearChildScene();

   scene.attachChild(buttonsprite);

   buttonsprite.registerEntityModifier(new
ScaleAtModifier(0.5f, 0, 1, 100, 200));

   Log.i("3",
"button3");

   menukey=false; 

  }

 });

 

   
menuscene.attachChild(button1);menuscene.registerTouchArea(button1);

 menuscene.attachChild(button2);menuscene.registerTouchArea(button2);

 menuscene.attachChild(button3);menuscene.registerTouchArea(button3);

 menuscene.setBackgroundEnabled(false);

}
public class button1click implements
OnClickListener{

 @Override

 public void onClick(ButtonSprite arg0, float
arg1, float arg2) {

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

  scene.registerEntityModifier(new
ScaleAtModifier(1, 1, 0, CAMERA_WIDTH, CAMERA_HEIGHT));

  menuscene.registerEntityModifier(new
ScaleAtModifier(1, 1, 0, CAMERA_WIDTH, CAMERA_HEIGHT));

  Runnable level1=new Runnable()
{

  

  @Override

  public void run() {

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

   Intent
intent=new Intent(MainActivity.this,Level1Game.class);

   startActivity(intent);

  }

 };

  mHandler.postDelayed(level1,1000);

  Log.i("1", "button1");

 }

}
}

Level1Game.java //可省略

public class Level1Game extends BaseGameActivity{

 private static final int CAMERA_WIDTH =
800;

 private static final int CAMERA_HEIGHT =
480;

 private Camera mCamera;

 Scene scene;

 BitmapTextureAtlas p1,p2;

 TextureRegion bgp1,bgp2;

 @Override

 public EngineOptions onCreateEngineOptions()
{

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

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

  EngineOptions mengine=new
EngineOptions(true, ScreenOrientation.LANDSCAPE_FIXED,

new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT),
this.mCamera);

  return mengine;

 }

 @Override

 public void
onCreateResources(OnCreateResourcesCallback arg0)

   throws
Exception {

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

  p1=new
BitmapTextureAtlas(getTextureManager(), 240, 160);

  bgp1=BitmapTextureAtlasTextureRegionFactory.createFromAsset(p1,
getAssets(), "p1.jpg", 0, 0);

  p1.load();

  p2=new
BitmapTextureAtlas(getTextureManager(), 1366, 768);

  bgp2=BitmapTextureAtlasTextureRegionFactory.createFromAsset(p2,
getAssets(), "p2.jpg", 0, 0);

  p2.load();

  

  arg0.onCreateResourcesFinished();

 }

 @Override

 public void onCreateScene(OnCreateSceneCallback
arg0) throws Exception {

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

  scene =new Scene();

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

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

   Sprite background=new
Sprite(centerX, centerY, bgp2,
getVertexBufferObjectManager());

  
background.registerEntityModifier(new ScaleAtModifier(1, 0, 1,
CAMERA_WIDTH, CAMERA_HEIGHT));

  
scene.attachChild(background);

   Sprite pone=new Sprite(0, 0,
bgp1, getVertexBufferObjectManager());

  
pone.registerEntityModifier(new SequenceEntityModifier(new
ParallelEntityModifier(

    new
MoveModifier(3, 0, 280, 0, 160),

      
new SequenceEntityModifier(

                     
new ScaleAtModifier(1, 1, 1, centerX, centerY),

                     
new ScaleAtModifier(2, 1, 0.5f, centerX, centerY))

    ),new
ParallelEntityModifier(new SequenceEntityModifier(

      new
ScaleAtModifier(2, 0.5f, 1, centerX, centerY)))));

   scene.attachChild(pone);

  arg0.onCreateSceneFinished(scene);

 }

//自定义缓动函数

public static class EaseWiggle implements
IEaseFunction{

private static EaseWiggle
INSTANCE;

private EaseWiggle() {

}

public static EaseWiggle getInstance()
{

if(INSTANCE == null) {

INSTANCE = new EaseWiggle();

}

return INSTANCE;

}

@Override

public float getPercentage(float
pSecondsElapsed, float pDuration) {

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

float percentage = pSecondsElapsed /
pDuration;

if(percentage < 0.5f) {

return 0.5f-0.5f *
(FloatMath.cos(4*percentage * PI) - 1);

} else {

return 0.5f-0.5f *
(FloatMath.cos(4*(percentage-0.5f) * PI) - 1);

}

}

}

 @Override

 public void onPopulateScene(Scene arg0,
OnPopulateSceneCallback arg1)

   throws
Exception {

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

  

  arg1.onPopulateSceneFinished();

 }

 

}

 代码:http://vdisk.weibo.com/s/uqaaHg5hC0Tbk
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: