我设置了一个SKSprite(s1),以使physicsBody具有来自路径的多边形:
s1.physicsBody = [SKPhysicsBody bodyWithPolygonFromPath:path];
和另一个(s2)具有从其周围的矩形生成的physicsBody:
s2.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:e.size];
并且两个精灵的碰撞很好,它们只发生在来自s1的多边形路径的实际像素和来自s2的周围矩形碰撞(而不是来自每个精灵的周围矩形)。这可以。但是当触摸周围的矩形时,s1中的touchesMoved(具有基于多边形的体)会发生 - 即使它具有基于多边形的physicsBody(参见上面用于设置s1的physicsBody的代码)。我该如何解决这个问题,并且只有当它应该被触发时才会触发,也就是当触摸实际像素(由基于多边形的physicsBody定义)时?
我尝试在点检测身体:
SKPhysicsBody * draggedOverBody = [self.physicsWorld bodyAtPoint:location];
draggedOverNode = draggedOverBody.node;
并且它只检测边界矩形而不是polkygon physicsBody。非常令人沮丧。