我有三个全局变量:
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),但无法正常工作。有什么提示或指示给我吗?
此外,如果需要,我将发布更多代码来澄清任何令人困惑的内容。
答案 0 :(得分:0)
您可以尝试
for (PhysicsActor blade : bladesList) {
blade.rotateBy(70);
}
这将使列表中的所有刀片旋转70度。只要可以从调用它的位置访问阵列即可。