我正在创造一个玩家必须躲避敌人的游戏,现在这对一个敌人来说效果很好。但是,我如何创造像一群敌人不断产生它们?这是我想要创建多个对象的类/对象:
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);
感谢您的帮助! :)
答案 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。