2012-01-13 104 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