敌人产卵系统安卓游戏

时间:2012-01-13 14:05:32

标签: java android arraylist

我现在正在制作一款简单的安卓游戏,并想知道如何优化我的敌人生成器,或者如果我不需要。

目前,我只想生成敌人,随着等级的增加更多。游戏不是很花哨,只有一个屏幕 - 我猜 - 最大。一次20个。

所以我的方法是:

ArrayList<Enemy> enemies = new ArrayList(); 

我有一个ArrayList,我将存储我所有衍生的敌人(来自同一个类)。 现在在主更新功能中我有以下内容:

  for (Enemy en : enemies){
        en.update();
    }

这将是位置更新,现在我可能必须在循环中第二次运行以确定可以删除敌人,因为它被摧毁。

这是一种简单游戏最常用,最有效的方法吗?

1 个答案:

答案 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();
}

当然你需要把这个逻辑放在敌人类的更新中。这只是一个想法。