- Получил это приложение BOID для обработки с некоторыми алгоритмами рулевого управления.
Удаление элемента из ArrayList Java Processing Пример Boid
В Boids хранятся в двух отдельных ArrayLists для каждого цвета.
Красного Бойд (хищник) имеет функцию проводить:
class Creature { int prey = 1; PVector pursue(ArrayList boids) { PVector steer = new PVector(); if (prey < boids.size()) { Creature boid = (Creature) boids.get(prey); steer = PVector.sub(boid.location, location); steer.mult(maxpursue); } return steer; }
Этой функция получает красный Boids стоять на верхней части целевого белого Бойда.
Проблема заключается в том, что этот белый боид исчезнет, когда все красные бои над ним. (Как показано на рисунке выше)
Я могу добавить новый Boid или хищника со следующим, но я не могу удалить ?:
Почему вы создаете экземпляр, добавляете его и сразу же удаляете из списка? –
Теперь вы отредактировали код так, чтобы 'planet.boids.remove (boid);' фактически не является частью какого-либо метода. Пожалуйста, разместите * фактический код *, который вы утверждаете, не работает. –
Это было просто для тестирования. Если я удалю создание нового экземпляра, он не сможет распознать «хищник». И я не знаю, как изменить код так, чтобы он это делал. Пробовал такие вещи, как .. planet.boids.add (Существо хищник); , planet.boids.add (Creature.predator); ? –