Java-使ArrayList值轮换为游戏

时间:2019-01-20 23:23:10

标签: java libgdx rotation

我有三个全局变量:

private PhysicsActor blade;
private PhysicsActor blades;
private ArrayList<PhysicsActors> blades;

我从为游戏创建的类中创建了一个actor对象。

blade = new PhysicsActor();
        blade.storeAnimation( "", exTex );
        blade.setOriginCenter();
        blade.setEllipseBoundary();
        blade.setMaxSpeed(50);
        blade.setDeceleration(50);

    bladesList = new ArrayList<PhysicsActor>();
        for (int i = 0; i < 3 ; i++)
        {
            float xCoord = randomFloatGenerator(425, 50);
            float yCoord = randomFloatGenerator(mapHeight - 200, 275);
            blades = blade.clone();
            blades.setPosition(xCoord, yCoord);
            mainStage.addActor(blades);
            bladesList.add(blades);
        }

问题不是它们不会产生。就是说,当我在我的游戏以update(float dt)方法运行时要求它们旋转时,只有其中一个正在旋转:

public void update(float dt) 
{   
    // rotate the blade 70 degrees
    blades.rotateBy(70); 

    // rest of code etc
}

Here is an image to help visualize

我知道发生这种情况是因为我只旋转 刀片 演员。我想要做的是让它们全部从ArrayList旋转。我不知道如何从列表中获取它们。我已经尝试过使用for循环和其他几种在线查看的方式来尝试bladesList.get(i),但无法正常工作。有什么提示或指示给我吗?

此外,如果需要,我将发布更多代码来澄清任何令人困惑的内容。

1 个答案:

答案 0 :(得分:0)

您可以尝试

for (PhysicsActor blade : bladesList) {
    blade.rotateBy(70);
}

这将使列表中的所有刀片旋转70度。只要可以从调用它的位置访问阵列即可。