我正在创建一款游戏,玩家必须躲避敌人,现在可以很好地对付一个敌人。但是我如何创建一系列敌人来不断地产生它们呢?这是我想要创建多个对象的类/对象:
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。
关于java - Libgdx 多个敌人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30149028/