我想在盒子图像中写下分数。
首先我将盒子放在那个地方,然后我使用这样的标签在它上面添加了得分字符串。
private void drawScoreBoxes() {
scoreImage = new Image(scoreTexture);
stage.addActor(scoreImage);
scoreImage.setPosition(UiConstants.BOX_POS_X,UiConstants.BOX_POS_Y2);
}
private void drawScore() {
Label.LabelStyle scoreStyle = new Label.LabelStyle();// style
scoreStyle.font = game.font2;
scoreLabel2 = new Label(scoreController.getScoreString(), scoreStyle);// label
scoreLabel2.setPosition(scoreImage.getX()+scoreImage.getWidth()/2,scoreImage.getY());
}
分数字符串应恰好位于方框图像的中间。在这种情况下,当分数位数增加时,字符串对齐不正确。
我如何始终将它对齐?
我找到了getLabelAlign(),setAlignment(alignment)等方法。 但我不知道如何正确使用它。
答案 0 :(得分:2)
您有两种选择: 1.使用TextButton:
Drawable scoreDrawable = new TextureRegionDrawable(new TextureRegion(scoreTexture));
TextButtonStyle textButtonStyle = new TextButtonStyle( scoreDrawable, scoreDrawable, scoreDrawable, font );
TextButton tb = new TextButton( scoreController.getScoreString() );
tb.setDisabled( true );
或2.设置标签边界并对齐文本:
LabelStyle labelStyle = new LabelStyle( font, Color.BLACK );
Label scoreLabel = new Label( scoreController.getScoreString(), labelStyle );
scoreLabel.setBounds( scoreImage.getX(), scoreImage.getY(), scoreImage.getWidth(), scoreImage.getHeight() );
scoreLabel.setAlignment( Align.center );
答案 1 :(得分:1)
使用TextButton代替Image
+ Label
TextButton
是一个包含Label
的按钮,您可以将Image
可绘制部分传递给按钮,该按钮显示为标签的背景部分。
button = new TextButton("Button1", textButtonStyle);
stage.addActor(button);
一个TextButton
需要一个字符串来渲染和一个ButtonStyle,在这种情况下是一个TextButtonStyle
,它基本上是一个包含按钮所有信息的类(字体,可绘制时可绘制而不按下) ,可以在按下时绘制等等)。