SKPhysicsJoint: контакты и столкновения не работают

На IOS7.1, используя SpriteKit, я создал два простых прямоугольных спрайта с соответствующими физическими телами. Я установил битовые маски контактов и столкновений, и все работает точно так, как я ожидаю: контакты обнаруживаются, и столкновения предотвращают перекрытие двух прямоугольников. Но когда я создаю объект SKPhysicsJointSpring и соединяю два прямоугольника, контакты никогда не обнаруживаются, даже если прямоугольники иногда перекрываются во время моделирования. (Поведение пружины работает так же, как и следовало ожидать, с видимыми колебаниями.)

Другими словами, объединение физических тел, по-видимому, предотвращает обнаружение контактов и столкновения в SprikeKit, а это не то поведение, которое мне нужно.

Кто-нибудь знает, как это исправить? Благодарю.

1 ответ

Решение

Исправления нет, это встроенное поведение физического движка Box2D, которое использует Sprite Kit. Когда вы соединяете два тела через соединение, они больше не соприкасаются и не сталкиваются друг с другом.

С Box2D вы можете изменить это поведение с помощью collideConnected флаг. Однако в классах физики Sprite Kit такого флага нет.

Другие вопросы по тегам