ユーザーがボタンをホバーまたはクリックすると変化するボタンを作成したい。次の変数を作成しました
Button buttonPlay = new Button();
今何をすべきか、画像をロードする方法がわかりませんか?ボタンにテキストを書き込む方法は?イベント/効果を実装する方法(ホバー、クリック)?
誰かがボタンのサンプルコードを書くことができれば、非常に役立ちます。
ボタンはlibgdxの単なるアクターです。アクターをレンダリングするには、画面のすべてのアクターを含むステージを使用し、それらをレンダリングして更新します。テキスト付きのボタンが必要だと想定しているので、TextButtonクラスを使用してステージに追加する必要があります。 TextButtonは、レンダリングする文字列とButtonStyle、この場合はTextButtonStyleを受け取ります。この場合、これは基本的にボタンに関するすべての情報(フォント、押されていないときにレンダリングする描画可能、押されている間にレンダリングする描画可能など)を含むクラスです。
public class ButtonExample extends Game{
Stage stage;
TextButton button;
TextButtonStyle textButtonStyle;
BitmapFont font;
Skin skin;
TextureAtlas buttonAtlas;
@Override
public void create() {
stage = new Stage();
Gdx.input.setInputProcessor(stage);
font = new BitmapFont();
skin = new Skin();
buttonAtlas = new TextureAtlas(Gdx.files.internal("buttons/buttons.pack"));
skin.addRegions(buttonAtlas);
textButtonStyle = new TextButtonStyle();
textButtonStyle.font = font;
textButtonStyle.up = skin.getDrawable("up-button");
textButtonStyle.down = skin.getDrawable("down-button");
textButtonStyle.checked = skin.getDrawable("checked-button");
button = new TextButton("Button1", textButtonStyle);
stage.addActor(button);
}
@Override
public void render() {
super.render();
stage.draw();
}
}
ここで何が起こっているのでしょうか? 「buttons.pack」内のボタンのすべてのテクスチャを使用して、ステージ、フォント、およびテクスチャアトラスを作成しています。次に、空のTextButtonStyleを初期化し、up、down、checked状態のフォントとテクスチャを追加します。 font、up、down、checkedはすべてDrawable型の静的変数であるため、あらゆる種類のDrawable(テクスチャ、9パッチなど)を実際に渡すことができます。次に、ボタンをステージに追加します。
ボタンが実際にクリックされたときに何かをするために、ボタンにリスナー、ChangeListenerを追加する必要があります。
button.addListener(new ChangeListener() {
@Override
public void changed (ChangeEvent event, Actor actor) {
System.out.println("Button Pressed");
}
});
もちろん、ボタンをステージに直接追加する代わりに、テーブルに追加してテーブルにステージを追加する必要がありますが、この投稿をあまりにも混乱させたくありませんでした。 ここ はlibgdxのテーブルに関する優れたチュートリアルです。
buttons.packはlibgdxテクスチャパッカーから生成されたファイル、texture packerはテクスチャアトラスを生成するために使用できるツールです。これは、単一のファイルを使用してGUIにロードできる複数の画像です。メモリを節約するのにも役立ちます。このリンクを参照してください ` https://code.google.com/p/libgdx-texturepacker-gui/downloads/list 、 https:// github .com/libgdx/libgdx/wiki/Texture-packer