Slick2d | Обнаружение столкновения сущностей

Проблема:

Я знаю, что об этом спрашивали много раз, но я не нашел хороших ответов.
Итак, у меня есть несколько сущностей для моей игры, а теперь как лучше всего проверить коллизии?

Ссылки:

Игра (закончена)

Объяснение кода:
У меня есть список сущностей в моем мировом классе:

List<Entity> entities = new ArrayList<Entit,y>();
// The list in the World class

Я обновляю их этим кодом (только если внутри диапазона просмотра):

public void update(GameContainer gc, int delta) {
    for (int i = 0; i < entities.size(); i++) {
        entities.get(i).update(gc, delta);
    }
}
// Update entities

Итак, теперь я хочу проверить наличие столкновений внутри метода обновления сущностей.

Я попробовал это как мой метод обновления:

@Override
public void update(GameContainer gc, int delta) {
    for (Entity entity : world.entities) {
        if (intersects(entity)) {
           // world.remove(this);
        }
    }
}
// The update method of an entitiy

И это текущий метод inssesects:

public boolean intersects(Entity entity) {
    if (entity instanceof Player) {
        // Do nothing
    } else {
        if (shape != null) {
            return this.getShape().intersects(entity.getShape());
        }
    }

    return false;
}
// The intersects method of the abstract Entity class

В настоящее время метод intersects всегда возвращает true. Но почему?

Ответы на вопрос(1)

Ваш ответ на вопрос