run() 메서드에서 업데이트하는 2 arrylist와의 충돌을 확인하는 데 문제가 있습니다. run() 메소드의 코드는 다음과 같습니다.run() 메서드의 두 ArrayList 충돌 감지
ArrayList enemy = addenemy.getEnemy();
for (int i = 0; i < enemy.size(); i++) {
Enemy p = (Enemy) enemy.get(i);
if (p.isVisible() == true) {
p.update();
} else {
enemy.remove(i);
}}
ArrayList bullets = CharS.getBullets();
for (int i = 0; i < bullets.size(); i++) {
Bullets p = (Bullets) bullets.get(i);
if (p.isVisible() == true) {
p.update();
} else {
bullets.remove(i);
}}
여기에 글 머리 기호 클래스의 콜리 전 코드가 있습니다.
private void checkCollision() {
ArrayList enemy = Game.getEnemy();
for (int i = 0; i < enemy.size(); i++) {
Enemy e = (Enemy) enemy.get(i);
if(r.intersects(e.r)){
visible = false;
System.out.println("SHOTED");
}}}
적 개체가 제거되었을 때 오류가 발생했습니다 (화면을 벗어남). 어떻게 해결할 수 있습니까? 감사합니다
"오류가 있습니다"- 오류가 무엇입니까? –
나는이 메시지를 얻었습니다 : "Thread-3"스레드의 예외 java.lang.NullPointerException – Nizarhdt
예외 스택 추적은 NPE를 일으킨 코드 행을 표시해야합니다. 게시 된 코드에서 예외의 원인이 된 코드 행을 확인하십시오. 또한'checkCollision' 메소드에서'r'은 무엇입니까? –