2017-05-30 11 views
0

ボックスイメージ内にスコアを書きたいと思います。イメージ内のラベルテキストを適切な方法で整列する-LibGdx

最初にボックスをその場所に置き、次にこのようなラベルを使用して上にスコア文字列を追加しました。

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());  
    } 

スコア列スコア増加の桁の数、文字列整列が適切でない場合、この場合image.Inボックスの中央に正確に来るべきです。

どのように私はそれを常に中心に合わせることができますか?

getLabelAlign()、setAlignment(alignment)などのメソッドが見つかりました。 しかし、正しく使用する方法はわかりません。

答えて

1

あなたは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

代わりImage + Label

TextButtonの使用TextButtonLabelが含まれているボタンで、あなたはあなたのラベルの背景部分として表示し、そのボタンにImage描画可能な部分を渡すことができます。

button = new TextButton("Button1", textButtonStyle); 
stage.addActor(button); 

TextButtonをレンダリングする描画可能な、基本的にボタン(フォント、押されていないがレンダリングする描画可能なに関するすべての情報を含むクラスである、TextButtonStyleこの場合には、描画する文字列とのButtonStyleを取り押している間など)。

関連する問題