Пишу небольшую игрушку под андройд.
Был у меня такой вот код, который проверял столкновение двух объектов(взятый с одной из статей хабра). Астероиды(asteroid), которые хранятся в Arraylist(Asteroids) и космический корабль(ship).
for (Asteroid asteroid : asteroids)
if (asteroid.isCollision(ship.x, ship.y, ship.size)) {
}
позже мне захотелось добавить сбор монеток(сoin) а значит надо было удалять их при столкновении с кораблем. Поэтому я применил Iterator для удаления конкретной столкнувшейся с кораблем монетки. С этим тоже особых проблем не возникло.
for(Iterator<Coin> iterator = coins.iterator(); iterator.hasNext();) {
Coin coin = iterator.next();
if (coin.isCollision1(ship.x, ship.y, ship.size)) {
iterator.remove();
}
}
Но теперь я хочу чтобы при столкновении монетки(coin) и астероида(asteroid) оба удалялись. Я так понимаю мне нужно что то вроде такого:
for(Iterator<Coin> iterator = coins.iterator(); iterator.hasNext();) {
int x;
int y;
int size;
if (coin.isCollision1(x, y, size)) {
iterator.remove();
/*а здесь какая то магия вызывающая итератор Asteroids и подставляющая координаты астероидов x,y,size для сравнения в int x, int y, int size. */
}
}
Но ума не приложу как это сделать. Честно гуглил несколько дней, но не нашел ничего по теме.