目前,我只想生成敌人,随着等级的增加更多。游戏不是很花哨,只有一个屏幕 - 我猜 - 最大。一次20个。
所以我的方法是:
ArrayList<Enemy> enemies = new ArrayList();
我有一个ArrayList,我将存储我所有衍生的敌人(来自同一个类)。 现在在主更新功能中我有以下内容:
for (Enemy en : enemies){
en.update();
}
这将是位置更新,现在我可能必须在循环中第二次运行以确定可以删除敌人,因为它被摧毁。
这是一种简单游戏最常用,最有效的方法吗?
答案 0 :(得分:0)
尝试向敌人添加一个名为“dead”或“dispos”的属性。 因此,您可以跟踪需要释放的敌人:
for (Enemy en : enemies)
{
if (en.isDead() == true)
{
// Remove en from enemies.
// You'll probably need to use a "for" here keeping track of the last
// element when deleting one. So you can continue checking/updating
// enemies.
continue;
}
en.update();
}
如果你不希望它只是从屏幕上“消失”,你可以添加效果:
for (Enemy en : enemies)
{
if (en.isDead() == true)
{
en.startFadeOut();
}
else if (en.isFadeFinished())
{
// guessing some alpha channel property.
en.setAlpha(en.getAlpha() - 0.1 * ticks);
if (en.getAlpha() <= 0)
{
en.setFadeFinished(true);
}
}
en.update();
}
当然你需要把这个逻辑放在敌人类的更新中。这只是一个想法。