2017-05-30 8 views
0

私のゲームでは、ボタンをクリックするとポップアップが出ます。イメージを使わずに透明なレイヤーを描くことはできますか?-LibGdx

同時に、ポップアップを除いて画面上に透明なレイヤーを描画し、ポップアップがアクティブなような印象を与えるように、背景を無効にしたい。このような

何か:

enter image description here

が透明オーバーレイを作成するために、既存のベタ画像を作成することは可能ですか?

または

私は、透明層の印象を作るために透明画像自体を使用する必要がありますか?

+0

シェイプレンダリングの四角形をレンダリングし、透明になるように色を変更します。 [this](https://stackoverflow.com/questions/15397074/libgdx-how-to-draw-filled-rectangle-in-the-right-place-in-scene2d)トピック – Squiddie

答えて

2

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); 
+0

ありがとうございます。答えは有益です実際に私の質問は、既存の画像から透明なオーバーレイを作成することでした。私の質問は明確ではないかもしれません。それを明確にするために編集しました。 – Niranjana

+0

@Niranjana私は自分の答えを編集しました。 – Aryan

関連する問題