Вот моя проблема.Помогите с проблемой дизайна
Я использую библиотеку физики под названием Box2D. Я могу подключить слушателя, который скажет мне, когда сталкиваются 2 светильника.
По существу, Box2D работает, создавая b2Bodies. Поэтому я знаю только, к какому b2Body принадлежит столкновение. В моей игре у меня есть Entity, и из этого у меня есть PhisicsEntity. Функция PhysicalEntity содержит указатель на b2Body. Он также имеет метод sendMessage, который поступает от Entity. Проблема в том, что из b2Body, как отправить сообщение «Идентификация состояния» сообщение о столкновении. То, что я подумал о том, чтобы установить userData void * из b2Body в его соответствующую PhysicsEntity. Кажется очень неправильным, что нужно сделать void *, чтобы сделать это.
Есть ли лучший способ, с помощью которого я мог бы очень быстро узнать физическую сущность, связанную с b2Body без кастинга или поиска?
Благодаря
C++ требует отбрасывания до и от void *. В частности, это помогает людям использовать void * как «указатель на что-то» или как дешевый литой от одного типа к другому, что может вызвать разлом при множественном наследовании. – dascandy