Для производительности Box2D и libGDX повторно использует массивы, чтобы избежать перераспределения, поэтому вы не можете повторить полный результат getContactList
и getPoints
, поскольку вы получите много результаты.
Вместо этого сначала запросите количество элементов:
private void renderContactPoints() {
for(int i = 0; i < world.getContactCount(); ++i) {
Contact contact = world.getContactList().get(i);
for (int j = 0; j < contact.getWorldManifold().getNumberOfContactPoints(); ++j) {
Vector2 point = contact.getWorldManifold().getPoints()[j];
renderer.getBatch().draw(tex, point.x * PPM, point.y * PPM, 20, 20);
}
}
}