如何使用Scene2D制作弹出窗口?


13

我有一个带有徽标和一堆按钮的主菜单屏幕。当按下登录按钮时,我弹出一个对话框,要求输入用户名和密码。

除“弹出”外,此方法工作正常。目前,新对话框只是移动了所有内容,但我想将其放置在当前场景上。

我只是在学习Scene2D。

Answers:


10

对话框更适合模式弹出窗口,它在窗口中已经包含一个“按钮”和“内容”表(如文档所述)。您可以使用getButtonTable()或getContentTable()来获取这些表。

该对话框使您可以轻松使用弹出窗口。例如,这是一个确认对话框:

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

您可以将其他对象用于“是/否/取消”选项。


是否可以根据对话框的内容自动设置对话框的大小?像它看起来太小了上面的例子..

我想这是可以通过调用pack()方法:)

0

很好,因为没有人回答,所以我将发布解决方案。

将演员添加到舞台上时,而不是这样做:

stage.add(actor);

在其中添加了具有给定Actor的Cell的情况下,我执行了以下操作:

stage.addActor(actor);

然后,我可以自由重叠演员,并通过补间移动/缩放/旋转它们。我目前唯一可能看到的就是小部件的绝对位置。

为了定位它们,您必须致电:

actor.setPosition(x, y);

因此,在处理不同宽高比和分辨率的Android设备时可能会有些困难。


只要您设置静态世界的大小并在舞台上使用视口,绝对位置就不成问题。它可以处理缩放,拉伸和其他处理纵横比和分辨率的隐晦特性。
nhydock
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.