java - Libgdx多个敌人

我正在创建一款游戏,玩家必须躲避敌人,现在该游戏可以很好地与一个敌人配合使用。但是,我如何像一群敌人一样不断地产生它们呢?这是我要创建多个对象的类/对象:

public class Spike extends MoveEntity 
{
    public Spike(float speed, float rotation, float width, float height,    Vector2 position) 
    {
        super(speed, rotation, width, height, position);
    }

    void move(float delta) 
    {

    }

    public void update() 
    {
        position.y -= 3;
    }

}


这就是我渲染它的方式(只是一个敌人):

sb.draw(sp_bg5, s.getPosition().x, s.getPosition().y, s.getWidth() / 2, s.getHeight() / 2, s.getWidth(), s.getHeight(), 1, 1, 0);


感谢您的任何帮助! :)

最佳答案

我认为您正在寻找的是一个列表(特别是java.util.LinkedList)。您可以这样创建一个:

LinkedList<Spike> enemies = new LinkedList<Spike>();


并像这样添加敌人:

enemies.add(new Spike(speed, rotation, width, height, position);


最后像这样绘制它们:

for (Spike s : enemies) {
    sb.draw(sp_bg5, s.getPosition().x, s.getPosition().y, s.getWidth() / 2, s.getHeight() / 2, s.getWidth(), s.getHeight(), 1, 1, 0);
}


但是,如果要生成它们,将变得更加复杂。 Java不允许您在遍历列表时正常修改列表。您将为此使用特殊的迭代器:

ListIterator<Spike> it = enemies.listIterator();
while (it.hasNext()) {
    Spike s = it.next();
    if (s.shouldBeRemoved()) {
        it.remove();
    }
}


并且您当然可以用任何必要的检查替换shouldBeRemoved。