Come faccio a creare una finestra pop-up con Scene2D?


13

Ho una schermata del menu principale con un logo e un mucchio di pulsanti. Quando viene premuto il pulsante Login, apro una finestra di dialogo che richiede un nome utente e una password.

Funziona bene, a parte il "saltar fuori". Al momento la nuova finestra di dialogo sposta tutto, ma vorrei posizionarlo sulla scena attuale.

Sto solo imparando Scene2D.

Risposte:


10

La finestra di dialogo è più adatta per le finestre pop-up modali e include una tabella "pulsante" e "contenuto" già nella finestra (come dicono i documenti ). Puoi prendere queste tabelle con getButtonTable () o getContentTable ().

La finestra di dialogo semplifica il lavoro con finestre pop-up. Ad esempio, ecco una finestra di conferma:

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();

Puoi usare altri oggetti per, diciamo, Sì / No / Annulla opzioni.


È possibile impostare automaticamente la finestra di dialogo in base al suo contenuto? Sembra che sia troppo piccolo con l'esempio sopra ...
Lago

Immagino sia possibile chiamando il metodo pack () :)
Lago

0

Bene, dal momento che nessuno ha risposto, pubblicherò la mia soluzione.

Quando si aggiungono attori allo stage, anziché fare:

stage.add(actor);

Il che aggiunge una cella con l'attore dato in esso, ho fatto quanto segue:

stage.addActor(actor);

Ero quindi libero di sovrapporre gli attori e spostarli / ridimensionarli / ruotarli tramite l'interpolazione. L'unica probabilmente che vedo attualmente con questo è il posizionamento assoluto dei widget.

Per posizionarli devi chiamare:

actor.setPosition(x, y);

Quindi potrebbe essere un po 'difficile quando si tratta di dispositivi Android con diverse proporzioni e risoluzioni.


la posizione assoluta non è un problema se si imposta una dimensione statica del mondo e si utilizza una finestra con il proprio palcoscenico. Gestirà il ridimensionamento, lo stretching e altre proprietà oscure di gestione delle proporzioni e delle risoluzioni.
nhydock,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.