我正在构建我的启动画面,我对于对齐元素并使它们正确适应有一些疑问。如果你知道我的意思,如何让我的精灵,文本和其他元素占据正确的位置并使它们在屏幕上对齐。我应该使用Table吗?我该怎么做?如何使用Table进行此操作?
我改变了我的代码:现在Player类可以扩展Actor类。 但我遇到了一些麻烦,因为我将播放器添加到桌面中,但播放器图像几乎出现在屏幕中间。在我插入方法将表格与中心对齐之前没有发生,但是我删除了这个方法并且播放器仍然保持在屏幕上的那个位置
show()方法中SplashScreen的一部分:
// Create the SpriteBatch
this.game.spriteBatch = new SpriteBatch();
// Create the stage
this.game.stage = new Stage(this.game.viewPort);
// Create the table
this.table = new Table();
this.table.setFillParent(true);
this.game.stage.addActor(this.table);
// Insert the elements into the table
this.table.row();
this.table.add(this.game.player);
现在来自SplashScreen的render()方法:
// Set the projection matrix for the SpriteBatch
this.game.spriteBatch.setProjectionMatrix(this.game.orthoCamera.combined);
// SpriteBatch begins
this.game.spriteBatch.begin();
// Display the ClimbUp logo
this.gameTitle.draw(this.game.spriteBatch);
this.table.draw(this.game.spriteBatch, 1);
this.game.player.draw(this.game.spriteBatch, 1);
// SpriteBatch ends
this.game.spriteBatch.end();
答案 0 :(得分:0)
是的,当谈到LibGdx中的对齐时,表是要走的路。使用表格非常简单。 首先需要的是一个Skin实例,它接受一个TextureAtlas参数,然后你可以实例化Table。
Table someTable = new Table(); //Takes a Skin object as a parameter.
someTable.add(); // Element as parameter.
someTable.row(); // Add a row if you need it.
someTable.add(); //Element as parameter.
someTable.debug(); // Don't forget to call debug();
当您实例化Table对象并准备好时,只需将其添加到Stage对象并让它执行绘图和其他内容。
someStage.addActor(someTable);
但在做这些之前你应该看看here。