2017-04-15 11 views
0

ゲームのコントロールのために画面の隅にボタンを作成したいと思います。 これは、単にスキンを作成して、そのスキンをnew ImageButton(skin)に追加し、そのボタンのサイズと位置を望みの値に設定することでした。私は現在box2dを使用していますが、今はボタンのサイズを(1, 1)に設定しても高さは正しいですが、幅は画面の約2/3になります。 は、私はテーブルを使用し、これをやってみました:テーブルのストレッチでlibgdxボタン

table = new Table(); 
    table.setFillParent(true); 
    stage.addActor(table); 
    table.setDebug(true); 
    table.add(boostButtonn).width(1).height(1).bottom().right(); 

をしかし、私は、画面の隅にそれを描画する方法か見当もつかない、またボタンは、これを使用して、正しいサイズで画面の中央に描かれていますテーブルには表示されませんが、スキンはボタンから引き出されます。ビューポートの幅と高さ40,24それぞれ

私の肌やボタンのコード:

Skin skin = new Skin(Gdx.files.internal("skin/flath-earth-ui.json")); 
Button bootsButton = new ImageButton(skin); 

そして私は

+0

あなたの要件を写真で見てください。 – Aryan

+0

右上に1ボタン、左下に2ボタン、左下に2ボタン、右下に1ボタンが必要です。 – DreamsInHD

+0

ボタンが機能しています(デバッガのボタンの赤い線が表示されています)が、ボタンのスキンは非常に伸びています。 – DreamsInHD

答えて

0

問題は、あなたのウィジェットを揃えるか、手配方法ではありません、それをテーブルに追加します。ボタン/ウィジェットやテキストが伸びてぼやけて見える理由は問題です。

なぜ伸びたのですか?

問題はあなたのリソースにあります。リソースはビューポートと互換性がある必要があります。小さなビューポートを使用している場合は、リソース(イメージとフォント)が小さくなければなりません。

あなたはWidgetの作成に使用されたスキンを使用しています。 スキンは、ウィジェットオブジェクトに関する情報を含む.jsonファイルと、画像ファイルの情報を持つファイル.atlasに依存します。

ビューポートの幅として40を使用している場合、ドロウアブルとして使用されるボタン画像は、およその範囲内にある必要があります。 10.

だから今、解決策は何であるか:

あなたはすでに、その後、他のビューポートに応じてリソースを作成作成し、あなたのリソースに応じていくつかの高いビューポートのディメンションを使用する準備ができているすべてのリソースを持っている場合。

+0

大丈夫ですが、高いビューポートを使用するとゲーム全体を変更する必要がありますスキンの寸法を変換しますか?これらのリソースは私のものではなく、libgdxのgitリポジトリからダウンロードしました。ドロアブルが10の範囲内にあることはどういう意味ですか? 10ピクセル? – DreamsInHD

+0

ウィジェットは、特定の長方形のサイズで描画するために[drawable](https://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/scenes/scene2d/utils/Drawable.html)を使用しています。 – Aryan

+0

'.json'スキンによって、あらかじめ定義されたスタイルの代わりに自分でスタイルを作成することができます。あなたのウィジェットでそのスタイルを使用してください。 – Aryan

関連する問題