-2

我在检查与 run() 方法中更新的 2 个数组列表的冲突时遇到问题。这是我在 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");

        }}}

当敌人物体被移除(屏幕外)时出现错误。我该如何解决这个问题?谢谢

4

1 回答 1

0

你定义r为任何东西吗?我看不到任何r定义的地方。这将导致您的 NullPointerException 错误。

检查堆栈跟踪中发生错误的行号。

于 2013-10-09T22:45:12.127 回答