Как получить точку столкновения или очки с Box2d?

Я создал своего собственного слушателя, используя обычные 4 метода: BeginContact, EndContact, PreSolve, PostSolve.

Где из каких параметров этих методов могут быть текущие контактные точки?

Я пробовал что-то подобное, но ничего не помогло

void CListener::PreSolve(b2Contact* contact, const b2Manifold* oldManifold) { for(int i = 0 ; i < oldManifold->pointCount; ++i) { b2ManifoldPoint p = oldManifold->points[i]; } } 

В Box2D версии 2.3.2 «контактные» точки получаются из параметра contact (первого параметра) методов b2ContactListener . Я вставляю контакт в круглые скобки, так как они включают точки, полученные в ситуациях перекрытия (где фигуры перемещаются за пределы касания).

Информация базовой контактной точки получается из структуры контактов b2Manifold возвращенной из b2Contact::GetManifold() . Однако они находятся в координатах, локальных по отношению к двум формам, которые связаны с этим многообразием.

Если вы хотите, чтобы контактные точки в мировых координатах (что, я думаю, действительно то, что вам нужно), вы можете вместо этого вызвать метод b2Contact::GetWorldManifold для b2Contact::GetWorldManifold для заполнения экземпляра b2WorldManifold для вас. Под капотом этот метод по сути является удобным методом, который собирает информацию, необходимую от контакта, включая b2Manifold а затем преобразует точки в мировые координаты.

Обратите внимание, что для того, чтобы знать, сколько из координированных точек контакта мира действительно действительно (может быть 0, 1 или 2) или знать тип коллектора, представляющий контакт, вы все равно захотите получить доступ к информации b2Manifold – в частности, ее pointCount и type поля.

Наконец, веб-страница, связанная с @ iforce2d для вас, я по-прежнему считаю полезной и более устно и визуально всеобъемлющей, чем то, что я сказал здесь.

  • Изменение ширины границы для нескольких UITextFields
  • Получение сообщения от заблокированного пользователя xmpp
  • Ошибка API Google API - несоответствие атрибуции
  • Почему случилось предупреждение?
  • iOS 7 Dev - @synthesize не автоматически создает ivars
  • Определение переменных экземпляра в Objective-C
  • Обнаружить, если UIImage светлый или темный
  • Как наблюдать изменения отдельных элементов в NSMutableArray?
  • Как создать атрибут для Underline на UILabel?
  • Форматы даты в iOS?
  • Одновременное использование одного и того же контроллера
  • Interesting Posts

    UIButton setTitle: фатальная ошибка: неожиданно найден nil при развертывании необязательного значения

    Как передать данные назад для просмотра управления с помощью модального контроллера

    Создание нового письма с панели настроек iPhone / iPad по умолчанию?

    Мне нужно приложение Apple Watch для связи между iPhone и Apple Watch?

    Как я могу использовать сохраненные токены в NXOAuth2?

    Многомерный массив в таблицу

    Отображение RESTKIT JSON с типом содержимого text / html

    Как изменить цвет маркера google maps, если он выбран в swift?

    Использование раскадровки из файла Bundle Resource

    Как создать четкую разбивку на страницы для мобильных устройств на отзывчивом веб-сайте

    Можно ли отдать код подписки на контент Apple?

    Socket.io не модернизирует собственный UIWebView

    Как обновить токен доступа FBSDK от iOS APP

    Получение ключей из NSDictionary

    UIApplication.delegate должен использоваться только из основного потока

    Давайте будем гением компьютера.