私のゲームでは、ボタンをクリックするとポップアップが出ます。イメージを使わずに透明なレイヤーを描くことはできますか?-LibGdx
同時に、ポップアップを除いて画面上に透明なレイヤーを描画し、ポップアップがアクティブなような印象を与えるように、背景を無効にしたい。このような
何か:
が透明オーバーレイを作成するために、既存のベタ画像を作成することは可能ですか?
または
私は、透明層の印象を作るために透明画像自体を使用する必要がありますか?
私のゲームでは、ボタンをクリックするとポップアップが出ます。イメージを使わずに透明なレイヤーを描くことはできますか?-LibGdx
同時に、ポップアップを除いて画面上に透明なレイヤーを描画し、ポップアップがアクティブなような印象を与えるように、背景を無効にしたい。このような
何か:
が透明オーバーレイを作成するために、既存のベタ画像を作成することは可能ですか?
または
私は、透明層の印象を作るために透明画像自体を使用する必要がありますか?
Image
は描画可能ですが、あなたの俳優に透明度が必要な場合は、Actor
を使用してください。
透明レイヤーとしてActor
を作成し、適切な順序で追加して、バックグラウンドアクターのみのタッチを無効にすることができます。
アクタの順序を維持する必要があります。
stage=new Stage();
Texture texture=new Texture("badlogic.jpg");
Image image=new Image(texture);
image.addListener(new ClickListener(){
@Override
public void clicked(InputEvent event, float x, float y) {
Gdx.app.log("TouchTest","Clicked on Image");
}
});
stage.addActor(image);
Actor actor=new Actor(); // this is your transparent layer
actor.setSize(Gdx.graphics.getWidth(),Gdx.graphics.getHeight());
stage.addActor(actor);
// Popup should on the top or your actor(touch layer)
Image image1=new Image(texture);
image.setPosition(100,100);
stage.addActor(image1);
Gdx.input.setInputProcessor(stage);
また、タッチレイヤのタッチ可能性を管理することもできます。私の提案で
actor.setTouchable(Touchable.disabled); // when you want to disable touch on
あなたのポップアップのため
Dialog
を使用する必要があります。 Dialogは、コンテンツテーブルを含むモーダルウィンドウです。あなたの参照画像から
EDIT
あなたがそう上記のコードでsemiTL
代わりのActor
を使用する半透明の層が必要と思われます。
Pixmap pixmap = new Pixmap(1,1, Pixmap.Format.RGBA8888);
pixmap.setColor(Color.BLACK);
pixmap.fillRectangle(0, 0, 1, 1);
Texture texture1=new Texture(pixmap);
pixmap.dispose();
Image semiTL=new Image(texture1);
semiTL.setSize(Gdx.graphics.getWidth(),Gdx.graphics.getHeight());
semiTL.getColor().a=.8f;
stage.addActor(semiTL);
シェイプレンダリングの四角形をレンダリングし、透明になるように色を変更します。 [this](https://stackoverflow.com/questions/15397074/libgdx-how-to-draw-filled-rectangle-in-the-right-place-in-scene2d)トピック – Squiddie