안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요~
게임 만드는 중인데요
적 클래스에 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를 잘못 사용하는건지....
좋은 방법이 있을까요? 제가 잘못 사용하는건가염?
답변부탁드려료