Получение всемирного контактного прослушивателя в Box2D

Я пишу игру для Mac OS, используя cocos2D и Box2D. Я добавилb2ContactListener подкласс моего мира следующим образом:

contactListener = new ContactListener();
world->SetContactListener(contactListener);

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

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

world->GetContactListener();

в Box2D?

Причина, по которой я пытаюсь это сделать, заключается в том, что я предпочел бы перенести некоторую игровую логику (т. Е. Может ли тело прыгать на основе информации от слушателя контакта) в соответствующие классы, а не помещать все в основной класс игрового процесса.

Благодарность

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

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