2016-07-28 12 views
0

Ich habe einen Menübildschirm auf meinem Spiel mit zwei Gruppen mit der gleichen Bühne: maingroup und popupgroup (versteckt -> isVisible (false)). Wenn auf einen Button in der Maingroup geklickt wird, wird die Popup-Gruppe (isVisible (true)) zur Bühne hinzugefügt und es wird eine Image-Schaltfläche angezeigt.Zeichnen einer Gruppe über die andere in libgdx (gleiche Stufe)

Ich möchte den gesamten Bildschirm zu einem gewissen Grad bis auf den ImageButton auf dem Display verdunkeln. Auch wie kann ich es so haben, dass ein Klick irgendwo anders auf dem Bildschirm außer ImageButton wird() die Popup-Gruppe entfernen und Maingroup in den Vordergrund bringen?

-Code ..

...addListener(new InputListener() { 
      public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) { 

       maingroup.setTouchable(Touchable.disabled); 
       popupgroup.setVisible(true); 
       popupgroup.setColor(1f, 1f, 1f, 0f); 
       popupgroup.addAction(Actions.fadeIn(1f)); 

       return true; 
      } 

Gibt es so etwas wie ein clicklistener, die erkennen, wenn Sie außerhalb der Grenzen einer bestimmten Gruppe oder ein Element gedrückt haben?

Dank

+1

Erstellen Sie ein 1x1-Pixel-Bild, strecken Sie das Bild dann auf den gesamten Bildschirm, machen Sie es transparent und so dunkel/hell, wie Sie es brauchen. Fügen Sie außerdem ein onClick-Ereignis hinzu, damit Sie es ausblenden können, wenn Sie darauf klicken. – munyul

+0

Danke. Hätte nie daran gedacht ... Wie kann ich Ihre Antwort als die richtige auswählen? – Bmbariah

Antwort

0

Zunächst einmal - warum nicht noch eine Bühne zu schaffen? Es wäre einfacher, zwei Stufen zu haben - eine für gewöhnliche Sprites und die zweite für Pop-ups.

Auf jeden Fall müssen Sie den Z-Index von Gruppen setzen, und Sie sollten für diese toFront() und toBack() Methoden

//when need to show popup 
    darkenGroup.setVisible(true); 
    popupGroup.setVisible(true); 

    darkenGroup.toFront(); 
    popupGroup.toFront(); 

    //hide them by using just setVisible(false) 
    darkenGroup.setVisible(false); 
    popupGroup.setVisible(false); 

Über die Schaffung dieser verdunkeln semi-transparent Gruppe Kommentar Idee @ munyul die Verwendung in Betracht ziehen - um eine 1x1px-Textur zu erhalten und zu strecken - sollte es besser optimiert werden

Verwandte Themen