Ответ 1
Существует два требования к использованию соединений с физикой SpriteKit:
- Определите суставы в пространстве мира (сцены).
- Не перемещайте мир.
Из вашего вопроса и комментариев, похоже, что у вас есть № 1 вправо: когда сустав между узлами, которые не являются прямыми детьми сцены, вам нужно преобразовать координаты в пространство сцены, прежде чем использовать их для определения сустав.
Однако физика SpriteKit не справляется с этим, когда вы пытаетесь переместить корневую систему координат. Таким образом, внедрение "камеры" путем перемещения мира вызывает проблемы для суставов. Вместо этого:
-
Если вы можете позволить себе ориентироваться только на iOS 9.0/OS X 10.11/tvOS 9.0 и выше, используйте
SKCameraNode
вместо перемещения мира. Это тоже проще!(Если вам интересно, можете ли вы поддерживать только iOS 9, проверьте статистику скорости принятия решений и сравните с график разработки... если вы не будете отправлять на некоторое время, iOS 9 может быть версией ОС "-1" к тому времени, когда вы закончите. Помните также, что существует высокая корреляция между восторженными клиентами и ранними усыновителями.)к югу >
-
Если вы все еще поддерживаете iOS 8/OS X 10.10, попробуйте добавить дополнительный слой к вашей сцене: подделать камеру, переместив node, который является дочерним элементом вашей сцены, и родителем всех ваших игрового контента.