Вражеская система возрождения - PullRequest
0 голосов
/ 13 января 2012

Я сейчас делаю простую игру для Android, и мне было интересно, как я могу оптимизировать моего вражеского спавнера или нет.

В данный момент я просто хочу порождать врагов, больше по мере продвижения уровня. Игра ничего необычного, только один экран с - я бы предположил - макс. 20 одновременно.

Итак, мой подход:

ArrayList<Enemy> enemies = new ArrayList(); 

У меня есть ArrayList, где я буду хранить всех своих появившихся врагов (из того же класса). Теперь в основной функции обновления у меня есть следующее:

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

Это было бы для обновления позиции, теперь мне, возможно, придется повторить цикл во второй раз, чтобы определить, кого из врагов можно удалить, потому что он уничтожен.

Это самый распространенный и эффективный способ для простой игры?

1 Ответ

0 голосов
/ 13 января 2012

Попробуйте добавить к врагу свойство, которое называется «мертвым» или «уничтоженным». Таким образом, вы можете отслеживать, каких врагов нужно освободить, выполнив:

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

конечно, вам нужно поместить эту логику в обновление класса противника. Это всего лишь идея.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...