안녕하세요~

게임 만드는 중인데요

적 클래스에 ArrayList를 썼는데요

 

ArrayList<Enemy> mEnemy;

mEnemy = new ArrayList<Enemy>();

 

이렇게 선언했고요

 

 

 for(Enemy tmp : mEnemy)
       if((tmp.mDirX>=800 || tmp.mDirY>=460) && tmp.IsLive()){//충돌체크
           mEnemy.remove(tmp);
       }

이렇게 for문으로 충돌체크를 하고 바로 삭제해 버리니

배열 인덱스를 벗어나는 경우가 생겨서

 

상태 변수를 추가해서 Kill 상태로 만든 후에 게임이 끝나고remove로 지워주는 방법을 썼는데요

 

 for(Enemy tmp : mEnemy){
       if(tmp.IsDead()) mEnemy.remove(tmp);
      }
이렇게요.

 

그리고 다음 스테이지 적 수만큼   add 해주고 게임을 했는데

1스테이지가 10마리이고 2스테이지가 15마리이면

2스테이지에 5마리만 생성이 됩니다.

remove를 잘못 사용하는건지....

 

좋은 방법이 있을까요? 제가 잘못 사용하는건가염?

답변부탁드려료