제가 안드로이드 슈팅게임예제를 응용하여 원래 미사일한개에 적이 바로 remove 되는 것을
적에게 hp를 넣어 여러번 맞으면 삭제 되게 할려고 합니다.
아래는 충돌처리할때 소스입니다.
public void CheckCollision() {
for (int i = m_pmslist.size() - 1; i >= 0; i--) {
for (int j = m_enemlist.size() - 1; j >= 0; j--) {
if (CollisionManager.CheckBoxToBox(m_pmslist.get(i).m_BoundBox,
m_enemlist.get(j).m_BoundBox)) {
if (m_enemlist.get(j).hp == 50) {
m_enemlist.get(j).hp = m_enemlist.get(j).hp
- m_pmslist.get(i).hp;
} else {
m_enemlist.get(j).hp = m_enemlist.get(j).hp
- m_pmslist.get(i).hp;
if (m_enemlist.get(j).hp == 0) {
m_enemlist.remove(j);
return;
}
m_pmslist.remove(i);
}
Log.d("ga", m_enemlist.get(j).hp + "입니다.");
}
}
}
플레이어 미사일과 적이 충돌하면 충돌한 적의 hp가 50(초기값)이면 미사일의값 10만큼 감소해서 0이 되면 remove 시킬려고 합니다. hp감소와 적삭제 까지는 잘되는데 잘되다가도 계속 오류가 나서 질문드립니다.
오류내용은
android indexoutofboundsexception invalid index 0 size is 0
이게 계속 뜨는데 검색 해보니 어레이 리스트에서 get할려는데 데이터가 없다고 하는 것 같은데
도무지 어떻게 해결해야 될지 모르겠습니다.
hp감소 부분의 소스를 빼면 오류는 발생하지않습니다.
hp부여부분의 문제점이 있다면 또 알려주세요~~
제발 도움좀 부탁드립니다.!!