如何在libgdx中显示分数或时间之类的文本?
我使用了阶段法。但它不起作用。我是游戏开发新手。请帮帮我 您可以使用如何在libgdx中显示分数或时间之类的文本?,libgdx,Libgdx,我使用了阶段法。但它不起作用。我是游戏开发新手。请帮帮我 您可以使用标签,如果您以这种方式使用: public class GdxText extends ApplicationAdapter { Stage stage; Label scoreLabel; @Override public void create() { stage=new Stage(); Label.LabelStyle labelStyle=new
标签
,如果您以这种方式使用:
public class GdxText extends ApplicationAdapter {
Stage stage;
Label scoreLabel;
@Override
public void create() {
stage=new Stage();
Label.LabelStyle labelStyle=new Label.LabelStyle(new BitmapFont(), Color.RED);
scoreLabel=new Label(String.format("%03d",0),labelStyle);
Table table =new Table();
table.defaults().pad(2);
table.add(new Label("SCORE :",labelStyle));
table.add(scoreLabel);
table.setPosition(200,300);
stage.addActor(table);
}
@Override
public void render() {
Gdx.gl.glClearColor(1,1,1,1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
stage.draw();
stage.act();
}
public void increase(){
CharSequence value=scoreLabel.getText();
int v= Integer.valueOf(value.toString());
scoreLabel.setText(String.format("%03d", ++v));
}
@Override
public void resize(int width, int height) {
stage.getViewport().update(width,height,true);
}
@Override
public void dispose() {
stage.dispose();
}
}
我使用默认字体进行此测试,您可以使用自己的字体。每当您想增加score调用increase()
方法的值时,它会将您的分数增加一
输出:
使用标签。把它加入你的舞台。请继续往下读,谢谢。我以前试过这个技巧。但现在我明白为什么那不起作用了。我把这两行代码(stage.draw();stage.act();)放在sb.begin()和sb.end()之间。但是把这些行放在sb.end()之后是可行的。当你调用
stage.draw()
时,你需要一次使用一个批,一个批begin()
在内部调用,一个批end()
在调用之后,所以把批分开。