1.常量
public class Constants {
public static int Stageflag = 1;
public static int StartStageOn = 1;
public static int GameStageOn = 2;
public static int StoreStageOn = 3;
}
2.开始舞台
public class StartStage extends Stage {
Texture texture;
TextureRegion startRegion;
Image startImage;
Image newGameBtn;
TextureRegion newGameRegion;
public StartStage() {
super();
init();
}
public void init() {
texture = new Texture(Gdx.files.internal("data/start.png"));
startRegion = new TextureRegion(texture, 0, 0, 800, 480);
startImage = new Image(startRegion);
startImage.setSize(480, 320);
newGameRegion = new TextureRegion(texture, 924, 0, 100, 50);
newGameBtn = new Image(newGameRegion);
newGameBtn.setPosition(40, 230);
this.addActor(startImage);//设置背景
this.addActor(newGameBtn);//添加按钮图片
newGameBtn.addListener(new InputListener(){
@Override
public boolean touchDown(InputEvent event, float x, float y,
int pointer, int button) {
Constants.Stageflag = Constants.GameStageOn;//标记舞台的转换
return true;
}
});
}
}
3.其它需要转换舞台略
4.绘制
public class MyGame implements ApplicationListener {
GameStage gameStage;
StartStage startStage;
StoreStage storeStage;
@Override
public void create() {
gameStage = new GameStage();
startStage = new StartStage();
storeStage = new StoreStage();
}
public void selectStageRender(){
if(Constants.Stageflag == Constants.StartStageOn){
Gdx.input.setInputProcessor(startStage);
startStage.act();
startStage.draw();
}else if (Constants.Stageflag == Constants.GameStageOn) {
Gdx.input.setInputProcessor(gameStage);
gameStage.act();
gameStage.draw();
}else if (Constants.Stageflag == Constants.StoreStageOn) {
Gdx.input.setInputProcessor(storeStage);
storeStage.act();
storeStage.draw();
}
}
@Override
public void dispose() {
}
@Override
public void render() {
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
selectStageRender();
}
@Override
public void resize(int width, int height) {
}
@Override
public void pause() {
}
@Override
public void resume() {
}
}