플레이어가 유성우를 쏘고있는 간단한 매끄러운 게임을 개발 중입니다. 두 이미지의 충돌 감지에 문제가 있습니다. 나는 레이저와 유성체에 대해 두 가지 목록을 가지고 있으며, 각 대상은 X와 Y 위치를 가지고 있습니다. 내가하려고하는 것은 현재 이미지 (레이저와 유성체)의 위치를 두 개의 직사각형으로 구현하여 상호 작용 여부를 확인할 수 있고, 그렇게하면 요소가 두 목록에서 삭제됩니다. 내 논리에 문제가있을 수 있으므로 더 일반적인 방법이나 적절한 방법이 있으면 알려 주시기 바랍니다. 여기 java.util.NoSuchElementException 충돌 감지 오류
는 충돌 검출 방법 다음public void checkCollision(){
ListIterator<Shoot> shootItr = shots.listIterator();
ListIterator<Meteor> metItr = meteors.listIterator();
Rectangle2D rectMet;
Rectangle2D rectSh;
while(shootItr.hasNext()){
rectSh = new Rectangle2D.Float(shootItr.next().getBeamPositionX(), shootItr.next().getBeamPositionY(), 10, 10);
while(metItr.hasNext()){
rectMet = new Rectangle2D.Float(metItr.next().getMetPositionX(), metItr.next().getMetPositionY(), 20, 20);
if(rectSh.intersects(rectMet)){
metItr.remove();
shootItr.remove();
}
}
}
}
하는 예외이다
가java.util.NoSuchElementException
at java.util.ArrayList$Itr.next(Unknown Source)
한 번에'.next()'를 두 번 호출하고 있습니까? 매 실행마다 값을 저장하십시오. – Emz