2016-04-30 2 views
0

Есть ли способ определить точки контакта x, y для двух тел физики, которые сталкиваются?Как определить контактную точку в SpriteKit

Я пытаюсь определить, находится ли контакт на одном из тел на верхней, нижней, левой или правой стороне.

Спасибо.

+0

На самом деле нижеприведенный ответ не дает мне то, что я хочу. Он возвращает координату экрана точки соприкосновения. То, что я ищу, это координата на объекте, где контакт, то есть какая часть объекта сделала контакт. Я мог бы, вероятно, использовать SKPhysicsContact.contactPoint и сделать математику, чтобы рассчитать, что мне нужно, я просто спрашиваю, есть ли что-то, что мне нужно. – macgeezer

+0

Конечно, вам нужно сделать некоторую математику (если у вас нет узла с четырьмя физическими телами). Но дело в том, что вы должны использовать свойство contactPoint. Или, возможно, вы могли бы пойти только с позициями узлов, которые находятся в контакте. Вы можете попробовать самостоятельно, и если вы все еще застряли, вы можете обновить свой вопрос кодом, который может воспроизвести проблему. Не поймите меня неправильно, но так, скорее всего, вы скорее получите ответ (вместо того, чтобы ждать кого-то, кто напишет вам целое решение). Вот как работает SO. – Whirlwind

+0

Я не просил кого-то написать решение, я спрашивал, есть ли что-то в комплекте. Не нужно и не цените лекцию о том, как работает SO – macgeezer

ответ

0

Классы, соответствующие протоколу SKPhysicsContactDelegate, могут реализовывать два метода: didBeginContact и didEndContact. Эти методы принимают объект SKPhysicsContact.

Из документов:

объект SKPhysicsContact создается автоматически Sprite Kit для описания контакта между двумя физическими телами в мире физики.

Так что, если вы наблюдаете этот объект (параметр называется contact) вы заметите, что он имеет свойство contactPoint.

Это то, что вы ищете.

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