Ответ, который дал Скурмедель, очень помог мне в этом.Я думал, что добавлю немного информации из того, что я делал, чтобы решить эту проблему.
Я, как и ОП, хотел проверить, что поражает и что.Мои сердца подпрыгивают внутри стен игрового экрана, и я хотел знать, бьют ли они другие сердца или стены.
Я использовал этот код для просмотра контакта
world.setContactListener(new ContactListener() {
@Override
public void beginContact(Contact contact) {
Gdx.app.log("GameScreen", "Contact Made! Fixture A: " + contact.getFixtureA().getBody().getUserData().toString());
Gdx.app.log("GameScreen", "Contact Made! Fixture B: " + contact.getFixtureB().getBody().getUserData().toString());
}
И внутри моего сердечного объекта я переопределил метод toString, чтобы просто вернуть 'Hear' на данный момент.Я устанавливаю userData для тела как весь объект спрайта, поэтому у меня есть гибкость с телом в самом объекте.
Не имея фактических ссылок на классы для пола, стен и потолка, я просто устанавливаюuserData как «Floor» и т. д.
GameScreen: Contact Made! Fixture A: Ground
GameScreen: Contact Made! Fixture B: Heart
Используя этот метод и улучшив его позже, я смогу изменить реакцию объектов в зависимости от того, с кем они контактируют.