2012-01-13 111 views
0

即时制作一个简单的Android游戏,并想知道如何优化我的敌人产卵器,或者如果我不必。敌人产卵系统安卓游戏

目前,我只是想产生敌人,更多的水平继续。游戏不是幻想,只有一个屏幕 - 我猜 - 最大。每次20个。

所以我的做法是:

ArrayList<Enemy> enemies = new ArrayList(); 

我有一个ArrayList在那里我将存储我所有的敌人产生了(同一类)。 现在主要更新功能,我有以下几点:

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

这将是位置更新,现在我也许必须通过循环运行第二个时间来确定敌人至极可以被删除,因为它被破坏了。

这是一个简单的游戏最常见和有效的方式吗?

回答

0

尝试向敌人称为“死亡”或“处置”添加属性。 所以,你可以跟踪哪些敌人需要被释放做:

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

您可以添加效果,如果你不希望它从屏幕上简单的“dissapear”:

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

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

+0

类似的事情经历了我的脑海。所以我猜,用于敌人处理的ArrayList方法是正常的? 编辑:感谢您的提示与淡出。会考虑它! – puelo 2012-01-13 14:13:12

+0

@puelo是的,这很简单,但功能。你不需要任何太复杂的工作。把事情简单化。顺便说一句,我刚刚编辑的帖子,检查淡出的想法。 – WoLfulus 2012-01-13 14:14:43

+0

好的。 5分钟后立即检查您的答案是否正确。感谢您的快速帮助。 – puelo 2012-01-13 14:15:43