我是LibGDX的新手,我慢慢接受它。我仍然试图了解大多数事情,这就是为什么谷歌搜索通常由于它们过于复杂而无法提供帮助。我有一个主菜单,无论屏幕大小是什么,都有我想要居中的文字。这是我对该菜单的代码。
public class Menu implements Screen {
SlingshotSteve game;
OrthographicCamera camera;
public Menu(final SlingshotSteve gam) {
this.game = gam;
camera = new OrthographicCamera();
camera.setToOrtho(false, 800, 480);
}
@Override
public void render(float delta) {
Gdx.gl.glClearColor(0, 0, 0.2f, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
camera.update();
game.batch.setProjectionMatrix(camera.combined);
game.batch.begin();
game.font.draw(game.batch, "Welcome to Slingshot Steve!!! ", 100, 150);
game.font.draw(game.batch, "Tap anywhere to begin!", 100, 100);
game.batch.end();
if (Gdx.input.isTouched()) {
game.setScreen((Screen) new GameScreen(game));
dispose();
}
}
@Override
public void resize(int width, int height) {
}
@Override
public void show() {
}
@Override
public void hide() {
}
@Override
public void pause() {
}
@Override
public void resume() {
}
@Override
public void dispose() {
}
}
答案 0 :(得分:1)
我来这里救你!
要从使用BitmapFont绘制的String获取宽度/高度,您可以使用这个超级好的方法:
game.font.getBounds(String string)
要在你的情况下使用它,它将是这样的:
game.font.getBounds("Tap anywhere to begin!").width / 2;
干杯!
答案 1 :(得分:1)
可以按 Nine Magics 建议的方式进行,但通常可以通过Stage
进行,Actor
是scene2d
的一部分。
更具体地说,可以使用scene2d.ui Button
,如Image
,Label
,ClickListener
等。您可以附加{Button
例如,1}}到Actor
并对此事件作出反应。
此外,对于布局,有一个非常强大的// do this once, in create() or show()
Skin skin = new Skin("uiskin.json"); // get the demo skin from the libgdx test resources
Stage stage = new Stage();
Table table = new Table(skin);
table.add("Welcome to Slingshot Steve!!!");
table.row();
table.add("Tap anywhere to begin!");
stage.addActor(table);
// do this in your render loop
stage.act();
stage.draw();
,即Table
,您可以非常轻松地将其用于屏幕上的内容。
一些极简主义的代码:
{{1}}
您可以找到“默认”皮肤资源here。你需要获得所有的uiskin。*文件。