Como faço para criar uma janela pop-up com o Scene2D?
13
Eu tenho uma tela de menu principal com um logotipo e um monte de botões. Quando o botão Login é pressionado, aparece um diálogo solicitando um nome de usuário e senha.
Isso funciona bem, exceto o "surgindo". No momento, a nova caixa de diálogo muda tudo, mas eu gostaria de posicioná-la sobre a cena atual.
A caixa de diálogo é mais adequada para janelas pop-up modais e inclui uma tabela "botão" e "conteúdo" já na janela (como dizem os documentos ). Você pode pegar essas tabelas com getButtonTable () ou getContentTable ().
A caixa de diálogo facilita o trabalho com janelas pop-up. Por exemplo, aqui está uma caixa de diálogo de confirmação:
Dialog dialog =newDialog("Warning", skin,"dialog"){publicvoid 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();
Você pode usar outros objetos para, por exemplo, opções Sim / Não / Cancelar.
É possível que a caixa de diálogo defina seu tamanho automaticamente com base em seu conteúdo? Parece que é muito pequeno com o exemplo acima ..
Lake
Eu acho que é possível chamando o método pack () :)
Lago
0
Bem, já que ninguém respondeu, vou postar minha solução.
Ao adicionar atores ao palco, em vez de fazer:
stage.add(actor);
O que adiciona uma célula com o determinado ator, fiz o seguinte:
stage.addActor(actor);
Fiquei então livre para sobrepor atores e movê-los / redimensioná-los / rotacioná-los por meio de interpolação. O único provavelmente que atualmente vejo com isso é o posicionamento absoluto dos Widgets.
Para posicioná-los, você deve ligar para:
actor.setPosition(x, y);
Portanto, pode ser um pouco difícil ao lidar com dispositivos Android com diferentes proporções e resoluções.
A posição absoluta não é um problema, desde que você defina um tamanho estático do mundo e use uma janela de visualização no seu palco. Ele lida com dimensionamento, alongamento e outras características obscuras de lidar com proporções e resoluções.
Bem, já que ninguém respondeu, vou postar minha solução.
Ao adicionar atores ao palco, em vez de fazer:
O que adiciona uma célula com o determinado ator, fiz o seguinte:
Fiquei então livre para sobrepor atores e movê-los / redimensioná-los / rotacioná-los por meio de interpolação. O único provavelmente que atualmente vejo com isso é o posicionamento absoluto dos Widgets.
Para posicioná-los, você deve ligar para:
Portanto, pode ser um pouco difícil ao lidar com dispositivos Android com diferentes proporções e resoluções.
fonte