16/11/2018 09:23 构造函数
public Menu(Jogo jogo) {
this.jogo = jogo;
this.camera = new OrthographicCamera();
this.camera.setToOrtho(false, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
camera.position.set(0,0,0);
viewport = new ScreenViewport(camera);
estagio = new Stage(viewport);
System.out.println(viewport.getScreenX());
System.out.println("Posicao c:" +camera.position.x);
camera.position.set(0,0,0);
camera.update();
Gdx.input.setInputProcessor(estagio);
des = new ShapeRenderer();
yLinha = 320 - 39;
// botaoNovo = new TextButton("Novo", new Skin());
}
显示方法:
@Override
public void show() {
// Table tabela = new Table();
// tabela.setFillParent(true);
// tabela.setDebug(true);
// estagio.addActor(tabela);
Skin skin = new Skin(Gdx.files.internal("skin/clean-crispy-ui.json"));
botaoNovo = new TextButton("Novo jogo", skin);
estagio.addActor(botaoNovo);
// Vector2 cordS = viewport.unproject(new Vector2(11,50));//estagio.screenToStageCoordinates(new Vector2(11, 50));
// System.out.println("Estagio x 11:" + cordS.x);
botaoNovo.setPosition(40, 320-50);
botaoNovo.setWidth(largura);
System.out.println(botaoNovo.getX());
botaoNovo.addListener(new ChangeListener() {
@Override
public void changed(ChangeEvent event, Actor actor) {
jogo.setScreen(new TelaJogo(jogo));
}
});
}
render方法:
@Override
public void render(float delta) {
Gdx.gl.glClearColor(0, 0, 0.2f, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
camera.update();
jogo.batch.setProjectionMatrix(camera.combined);
jogo.batch.begin();
//Etim que largura = 50
jogo.fontB.draw(jogo.batch, "JI Zabelê", (240 - 50) / 2, 320 - 20);
jogo.batch.end();
if (estado == INICIANDO) {
des.setProjectionMatrix(camera.combined);
des.begin(ShapeRenderer.ShapeType.Line);
des.setColor(0, 1, 0, 0);
des.line(10, 320 - 40, 10, yLinha);
yLinha--;
if (yLinha == 320 - 80) {
System.out.println("Linha completa. iniciar botões");
estado = CRESCENDO_BOTOES;
}
des.end();
} else if (estado == CRESCENDO_BOTOES) {
botaoNovo.setWidth(largura);
largura++;
estagio.act();
estagio.draw();
//jogo.batch.begin();
//botaoNovo.draw(jogo.batch,0);
//jogo.batch.end();
if (largura == 60) ;
estado = 2;
} else if (estado == 2) {
// jogo.batch.begin();
// botaoNovo.draw(jogo.batch,0);
// jogo.batch.end();
estagio.act();
estagio.draw();
}
// if (Gdx.input.isTouched()) {
// this.jogo.setScreen(new TelaJogo(jogo));
// }
}