SKPhysicsJoint: контакты и столкновения не работают
На IOS7.1, используя SpriteKit, я создал два простых прямоугольных спрайта с соответствующими физическими телами. Я установил битовые маски контактов и столкновений, и все работает точно так, как я ожидаю: контакты обнаруживаются, и столкновения предотвращают перекрытие двух прямоугольников. Но когда я создаю объект SKPhysicsJointSpring и соединяю два прямоугольника, контакты никогда не обнаруживаются, даже если прямоугольники иногда перекрываются во время моделирования. (Поведение пружины работает так же, как и следовало ожидать, с видимыми колебаниями.)
Другими словами, объединение физических тел, по-видимому, предотвращает обнаружение контактов и столкновения в SprikeKit, а это не то поведение, которое мне нужно.
Кто-нибудь знает, как это исправить? Благодарю.
1 ответ
Исправления нет, это встроенное поведение физического движка Box2D, которое использует Sprite Kit. Когда вы соединяете два тела через соединение, они больше не соприкасаются и не сталкиваются друг с другом.
С Box2D вы можете изменить это поведение с помощью collideConnected
флаг. Однако в классах физики Sprite Kit такого флага нет.