2015-05-10 130 views
0

我正在制作一款游戏,玩家必须躲避敌人,现在可以与一名敌人合作。但是,我如何创造像敌人阵列不断产卵他们?这里是类/对象我想创建的多个对象: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); 

感谢您的帮助! :)

回答

1

我认为你在找什么是一个列表(具体来说,一个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与任何检查是必要的。

+0

当我尝试这个它终止,我得到了退出值1,说125行LwjglApplication错误。 – Dumbostyle

+0

@Dumbostyle你能指定你正在得到什么错误吗?此外,也许发布新的代码,包括产生错误的行。 – Vincent