2016-05-18 4 views
1

У меня есть SKSpriteNode, у которого есть статическое тело, генерируемое из вогнутой дорожкой с edgeChainFromPath. Назовем этот узел дом.SpriteKit SKPhysicsBody сломанные столкновения

У меня также есть другой вид SKSpriteNode s, который имеет динамическое квадратное тело, сгенерированное с помощью rectangleOfSize. Назовем этот узел полем .

В моей сцене, в коробках выбрасываются акой толчка в дом и так как оба они имеют тело, то коробка приходится сталкиваться с домом и отскакивает прочь.

Я прокручиваю сцену и, следовательно, создаю новые экземпляры ТОЧНО ОДНОГО дом, описанный выше.

проблема у меня в том, что столкновения полностью или частично сломаны для некоторых домов. Некоторые домов сталкивающихся с коробки точно так, как они должны, некоторые сталкиваются с коробки только на некоторых случайных сегментах тела, а некоторые полностью игнорировать столкновения с коробки.

Эта проблема возникает только на iPad и никогда на iPhone. Случается как на iPad Simulator, так и на реальном iPad-устройстве.

Проблема возникает совершенно случайно и на случайных дома.

Я также пробовал создать дом тело с edgeLoopFromPath, но проблема остается.

Кроме того, я рисую физику и вижу, что физическое тело дома точно так, как должно быть.

Нет ничего особенного в сцене или узлах, о которых стоит говорить.

Я использую SpriteKit с Swift в iOS 9.


Update:

Похоже, вопрос в определении шкалы на дома узлов. Я должен сделать это, чтобы иметь универсальный внешний вид на всех размерах экрана.

Все еще ищет решение/обходной путь ...

+0

Вы включили представление визуальной физики и проверили, что все выглядит нормально? – Whirlwind

+0

@ Вихрь, как я сказал: «Я рисую физику». Так да. :) – damirstuhec

+0

У вас есть быстро движущиеся объекты на сцене? Также, если вы вручную меняете позиции узлов, которые могут столкнуться, то вы можете получить странное поведение ... – Whirlwind

ответ

0

Это, вероятно, из-за edgeLoopFromPath создания полой коробки с краем для вашего дома, а не один с объемом.

Я бы попытался использовать bodyWithPolygonFromPath, а также добавить точное определениеCollisionDetection как для ваших ящиков, так и для дома.

+0

Пробовал это также. Не работает. – damirstuhec

Смежные вопросы