run()方法中的两个ArrayList碰撞检测

时间:2013-10-09 22:22:50

标签: java arraylist collision-detection collision rectangles

我在检查与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");

        }}}

当敌人物体被移除时(屏幕外)我得到了错误。我怎么解决这个问题?感谢

1 个答案:

答案 0 :(得分:0)

你是否将r定义为什么?我没有看到定义r的任何地方。这会导致您的NullPointerException错误。

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