在LibGdx中扩展组

时间:2017-03-10 05:28:35

标签: libgdx scene2d

我在Project的播放屏幕中创建了一个组。该组包含许多图像和按钮作为演员。

Group newGroup = new Group();

在show()里面

newGroup.addActor(bg);
stage.addActor(newGroup);

这很有效。但是我想在组中添加更多东西。我还需要创建更多的组。所以我认为我可以创建扩展组的新类。实际上我想用模块化的方式来创建这些组。

public class newGroup extends Group {
 //want to add actors here-buttons,images and other scene2d elements
}

public class actor extends Actor{

}

我有这样的想法,但我不知道如何有效地做到这一点,以便我可以移动和缩放组项目并在播放屏幕中访问。 请告诉我如何在LibGdx中正确扩展组并在播放屏幕中访问它。

1 个答案:

答案 0 :(得分:0)

因此,您需要执行与示例相同的操作,但需要执行扩展类。也许我的简短例子会帮助你。

以下示例中有SKIN变量。我还没有展示如何加载皮肤。阅读有关Scene2D.ui的内容,了解SKIN的含义。

第一个例子(没有扩展):

Group group = new Group();
TextButton b = new TextButton(SKIN, "Press Me");
Label l = new Label(SKIN, "Some text");
b.setPosition(0, 0); //in groups coordinates
l.setPosition(0, 100);
group.addActor(l);
group.addActor(b);

stage.addActor(group);

你可以做同样的扩展:

public class MyGroup extends Group {
     private TextButton b;
     private Label l;

     public MyGroup() {
          b = new TextButton(SKIN, "Press me");
          l = new Label(SKIN, "Some text");
          b.setPosition(0, 0); //in coordinates of group
          l.setPosition(0, 100);
          //now we will add button and label to the our extended group.
          this.addActor(b);
          this.addActor(l);
          //"this" is unnecessary. I write this because it 
          //may be more clear for you to understand the code.
          //"this" is our extended group and we add actors to it.
     }

}

因此,现在您可以创建我们的新组并将其添加到舞台:

MyGroup myGroup = new MyGroup();
myGroup.setPosition(200, 200); //also in `stage` coords.
stage.addActor(myGroup);