Jak zrobić wyskakujące okno za pomocą Scene2D?

13

Mam ekran głównego menu z logo i kilkoma przyciskami. Po naciśnięciu przycisku logowania pojawia się okno dialogowe z prośbą o podanie nazwy użytkownika i hasła.

Działa to dobrze, z wyjątkiem „wyskakiwania”. W tej chwili nowe okno dialogowe po prostu zmienia wszystko, ale chciałbym ustawić je nad bieżącą sceną.

Właśnie się uczę Scene2D.

Gibbo
źródło

Odpowiedzi:

10

Okno dialogowe lepiej nadaje się do modalnych okien wyskakujących i zawiera tabelę „przycisku” i „zawartości” już w oknie (jak mówią doktorzy ). Możesz pobrać te tabele za pomocą getButtonTable () lub getContentTable ().

Okno dialogowe ułatwia pracę z wyskakującymi oknami. Na przykład oto okno dialogowe potwierdzenia:

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

Możesz użyć innych obiektów dla, powiedzmy, opcji Tak / Nie / Anuluj.

użytkownik212
źródło
Czy możliwe jest automatyczne ustawienie rozmiaru okna dialogowego na podstawie jego zawartości? Wygląda na to, że jest za mały w powyższym przykładzie ...
Jezioro
Myślę, że jest to możliwe poprzez wywołanie metody pack () :)
Lake
0

Dobrze, skoro nikt nie odpowiedział, opublikuję swoje rozwiązanie.

Podczas dodawania aktorów na stole montażowym zamiast:

stage.add(actor);

Co dodaje komórkę z danym aktorem, wykonałem następujące czynności:

stage.addActor(actor);

Mogłem wtedy nakładać się na aktorów i przesuwać / skalować / obracać ich za pomocą animacji. Jedyne, co obecnie widzę, to absolutne pozycjonowanie widżetów.

Aby je ustawić, musisz zadzwonić:

actor.setPosition(x, y);

Może to być trochę trudne w przypadku urządzeń z Androidem o różnych proporcjach i rozdzielczościach.

Gibbo
źródło
pozycja bezwzględna nie stanowi większego problemu, o ile ustawisz statyczny rozmiar świata i użyjesz rzutni na scenie. Poradzi sobie ze skalowaniem, rozciąganiem i innymi niejasnymi cechami radzenia sobie ze współczynnikami kształtu i rozdzielczości.
nhydock