Почему столкновение работает должным образом для физики на основе выпуклого многоугольника
Я установил SKSprite (s1), чтобы иметь физическую телу с полигоном из пути:
s1.physicsBody = [SKPhysicsBody bodyWithPolygonFromPath:path];
а другой (s2) имеет физическую структуру, сгенерированную из окружающего его прямоугольника:
s2.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:e.size];
и столкновения двух спрайтов в порядке, они случаются только тогда, когда сталкиваются фактические пиксели от траектории многоугольника s1 и окружающего прямоугольника от s2 (а не окружающие прямоугольники от каждого из спрайтов). Это отлично. Но касание, перемещаемое в s1 - которое имеет основанное на многоугольнике тело - происходит при касании его окружающего прямоугольника - даже если оно имеет основанную на многоугольнике физику тела (см. Код выше для установки physBody объекта s1). Как я могу решить эту проблему и заставить это событие срабатывать только тогда, когда оно должно происходить, когда происходит прикосновение к фактическим пикселям (определенным физическим телом на основе многоугольника)?
Я пытался обнаружить тело в точке:
SKPhysicsBody * draggedOverBody = [self.physicsWorld bodyAtPoint:location];
draggedOverNode = draggedOverBody.node;
а также он обнаруживает только ограничивающий прямоугольник вместо физики тела многоугольника. Очень расстраивает.