gpt4 book ai didi

java - Libgdx 多个敌人

转载 作者:行者123 更新时间:2023-12-01 11:34:26 26 4
gpt4 key购买 nike

我正在创建一款游戏,玩家必须躲避敌人,现在可以很好地对付一个敌人。但是我如何创建一系列敌人来不断地产生它们呢?这是我想要创建多个对象的类/对象:

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com