我在检查与2个arraylist的碰撞时遇到问题,即在run()方法中更新。这是我在run()方法中的代码:
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");
}}}
当敌人物体被移除时(屏幕外)我得到了错误。我怎么解决这个问题?感谢
答案 0 :(得分:0)
你是否将r
定义为什么?我没有看到定义r
的任何地方。这会导致您的NullPointerException错误。
检查堆栈跟踪以查找发生错误的行号。