Scene2Dでポップアップウィンドウを作成するにはどうすればよいですか?


13

メインメニュー画面には、ロゴと多数のボタンがあります。ログインボタンを押すと、ユーザー名とパスワードを尋ねるダイアログがポップアップします。

これは、「ポップアップ」以外は正常に機能します。現時点では、新しいダイアログボックスはすべてをシフトしますが、現在のシーンのに配置したいと思います。

私はただScene2Dを学んでいます。

回答:


10

Dialogはモーダルポップアップウィンドウに適しています。また、ダイアログには既に「ボタン」および「コンテンツ」テーブルが含まれています(ドキュメントのとおり)。これらのテーブルは、getButtonTable()またはgetContentTable()で取得できます。

このダイアログにより、ポップアップウィンドウを簡単に操作できます。たとえば、確認ダイアログは次のとおりです。

Dialog dialog = new Dialog("Warning", skin, "dialog") {
    public void result(Object obj) {
        System.out.println("result "+obj);
    }
};
dialog.text("Are you sure you want to quit?");
dialog.button("Yes", true); //sends "true" as the result
dialog.button("No", false);  //sends "false" as the result
dialog.key(Keys.Enter, true); //sends "true" when the ENTER key is pressed
dialog.show();

Yes / No / Cancelオプションなどに他のオブジェクトを使用できます。


内容に基づいてダイアログのサイズを自動的に設定することは可能ですか?上記の例では小さすぎます

私はそれが:)パック()メソッドを呼び出すことによって可能だと思う

0

誰も回答していないので、解決策を投稿します。

実行するのではなく、ステージにアクターを追加する場合:

stage.add(actor);

指定されたアクタを含むセルを追加するために、次のことを行いました。

stage.addActor(actor);

その後、アクターを自由にオーバーラップさせ、トゥイーンを介してアクターを移動/スケーリング/回転させました。私が現在これで見ている唯一の可能性は、ウィジェットの絶対位置です。

それらを配置するには、以下を呼び出す必要があります。

actor.setPosition(x, y);

そのため、異なるアスペクト比と解像度のAndroidデバイスを扱う場合、少し難しいかもしれません。


静的なワールドサイズを設定し、ステージでビューポートを使用する限り、絶対位置はそれほど問題ではありません。アスペクト比と解像度を処理するスケーリング、ストレッチ、およびその他のあいまいなプロパティを処理します。
nhydock 14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.