Java / libGDX - 清理对象创建

时间:2015-12-08 03:12:26

标签: java android libgdx

如下所示,很多代码非常相似。所以我想知道,有没有办法压缩我的按钮的创建,例如使用for循环?

private void initButtons() {
    Rectangle upButtonBounds = new Rectangle(55, 100, 75, 75);
    Rectangle downButtonBounds = new Rectangle(55, 0, 75, 75);
    Rectangle leftButtonBounds = new Rectangle(0, 50, 75, 75);
    Rectangle rightButtonBounds = new Rectangle(105, 50, 75, 75);
    Rectangle jumpButtonBounds = new Rectangle(VIEWPORT_WIDTH - 185, 115, 80, 80);
    Rectangle attackButtonBounds = new Rectangle(VIEWPORT_WIDTH - 185, 25, 80, 80);
    Rectangle magicButtonBounds = new Rectangle(VIEWPORT_WIDTH - 100, 75, 80, 80);

    upButton = new GameButton(upButtonBounds, "up");
    downButton = new GameButton(downButtonBounds, "down");
    leftButton = new GameButton(leftButtonBounds, "left");
    rightButton = new GameButton(rightButtonBounds, "right");
    jumpButton = new GameButton(jumpButtonBounds, "jump");
    attackButton = new GameButton(attackButtonBounds, "attack");
    magicButton = new GameButton(magicButtonBounds, "magic");

    addActor(upButton);
    addActor(downButton);
    addActor(leftButton);
    addActor(rightButton);
    addActor(jumpButton);
    addActor(attackButton);
    addActor(magicButton);
}

1 个答案:

答案 0 :(得分:0)

这是一种方法

        float[][] bounds = {{1,2,3,4}, {5,5,7,8} };
        String[]  names  = { "foo", "bar"};

        for (int i = 0; i < bounds.length; i++)
        {
            float[] rect = bounds[i];
            addActor(new GameButton(new Rectangle(rect[0], rect[1], rect[2], rect[3]), names[i]));
        }