Den Kontaktlistener der Welt in Box2D erhalten

Ich schreibe ein Spiel für Mac OS mit cocos2D und Box2D. Ich habe a hinzugefügtb2ContactListener Unterklasse zu meiner Welt wie folgt:

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

Dies funktioniert einwandfrei, aber ich bin mir nicht sicher, wie ich am besten auf den Kontaktlistener aus anderen Klassen zugreifen kann, die derzeit keinen direkten Bezug zum Kontaktlistener haben.

Ich weiß, dass ich einen Verweis auf andere Klassen weitergeben kann, die ihn benötigen, aber ich habe mich gefragt, ob es einen besseren Weg gibt. Genauer gesagt, obwohl ich keine Methode dafür finden kann, gibt es eine Entsprechung dazu:

world->GetContactListener();

in Box2D?

Der Grund, warum ich das versuche, ist einfach, weil ich es vorziehen würde, eine Spiellogik (dh ob ein Körper in der Lage ist, basierend auf Informationen des Kontakt-Zuhörers zu springen) zu den relevanten Klassen selbst zu verschieben, anstatt alles in das Hauptspiel zu stellen Klasse.

Vielen Dank!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage