LibGdx 中的扩展组

Extending Group in LibGdx

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

Group newGroup = new Group();

内部展示()

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

这行得通 well.But 我想在 group.Also 中添加更多内容 我需要再创建几个组 also.So 我想我可以创建新的 类扩展集团。其实我想用模块化的方式来创建这些组。

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

public class actor extends Actor{

}

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

所以,您需要做与示例中相同的事情,但要扩展 class。也许我的简短示例会对您有所帮助。

下面的例子中有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);